devkitPro / pacman

GNU General Public License v2.0
169 stars 16 forks source link

Provide a way to run the Windows devkitARM via CI pipeline #52

Closed wujekbogdan closed 8 months ago

wujekbogdan commented 8 months ago

Feature Request

What feature are you suggesting?

Some way of running the Windows version of devkitPro via CI pipeline, either by providing a Windows Docker image or an unattended devkitProUpdater installer.

Overview:

Running the Linux devkitPro via CI pipeline is as easy as using the official devkitPro Docker image. But running a Windows version is impossible because:

Possible solitions

I see 3 solutions:

Smaller Details:

N/A

Nature of Request:

I'm trying to implement a GitHub pipeline that would be triggered only on release. It won't be triggered very often, but I got banned when testing the pipeline - I guess I exceeded the number of requests, which must be pretty low.

The pipeline will compile GBARunner3. I can't use the Linux Docker image because the code only compiles on Windows.

Why would this feature be useful?

There's no way to run the Windows devkitPro via CI pipeline.

DacoTaco commented 8 months ago

in general, the need for a specific OS is kinda against what you should need/have or what any of the devkit toolkits are about. im not sure what GBARunner3 is, and i don't even follow why devkit toolkits and windows are a dependency here. everything in MSYS2 (windows) should also work in linux...

it is better, and safer, to make the project buildable on any platform imo...

wujekbogdan commented 8 months ago

GBARunner3 is a Game Boy Advance emulator (or rather a hypervisor) for Nintendo DS/3DS.

I'm not the maintainer of the tool; I just want to implement the build steps since the original repo doesn't have it. I'm not sure why the code requires Windows for compiling - all I know is that it doesn't work on Linux/macOS.

Right now, the only way to compile the software is on a Windows machine - but I can't do that due to IP bans on my GitHub pipeline.

BTW, my local machine got banned too. I only ran pacman a few times today, so I think the limit is really low. Maybe increasing that limit a bit would fix the issue? It would help folks like me get unblocked (who only need to run the pipeline on application release) while still keeping the ban for those who abuse pacman.

WinterMute commented 8 months ago

GBARunner3 is a Game Boy Advance emulator (or rather a hypervisor) for Nintendo DS/3DS.

I'm not the maintainer of the tool; I just want to implement the build steps since the original repo doesn't have it. I'm not sure why the code requires Windows for compiling - all I know is that it doesn't work on Linux/macOS.

This is an error in the project and should be corrected. I can't even compile it on Windows fwiw. This is what I get on a stock install.

make[2]: Entering directory '/home/davem/projects/GBARunner3/code/test/arm9' main.cpp In file included from C:/Users/davem/projects/GBARunner3/code/libs/googletest/include/gtest/internal/gtest-port.h:442, from C:/Users/davem/projects/GBARunner3/code/libs/googletest/include/gtest/gtest-message.h:57, from C:/Users/davem/projects/GBARunner3/code/libs/googletest/include/gtest/gtest-assertion-result.h:46, from C:/Users/davem/projects/GBARunner3/code/libs/googletest/include/gtest/gtest.h:68, from C:/Users/davem/projects/GBARunner3/code/test/arm9/source/main.cpp:3: C:/devkitPro/devkitARM/arm-none-eabi/include/regex.h:99:45: error: expected primary-expression before '__restrict' 99 | size_t, regmatch_t [__restrict], int); | ^~~~~~~~~~

Right now, the only way to compile the software is on a Windows machine - but I can't do that due to IP bans on my GitHub pipeline.

We don't support the use of pacman on github CI, please don't do this.

BTW, my local machine got banned too. I only ran pacman a few times today, so I think the limit is really low. Maybe increasing that limit a bit would fix the issue? It would help folks like me get unblocked (who only need to run the pipeline on application release) while still keeping the ban for those who abuse pacman.

Running pacman in github CI is something we consider abuse. This is why we provide the docker images. Code that builds on windows but not on Linux or macOS is broken and needs fixing.