-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Azure Devops Pipeline #267
base: master
Are you sure you want to change the base?
Conversation
This is an Azure Devops pipeline file that uses gnuton/vitasdk-docker Docker image for building. It is configurable with parameters before running. It uses and sets up Ninja for building everything. It dumps the CMake and Ninja files as an artifact upon build failure and as an option for easier debugging of compilation errors, as an artifact. It dumps the unsigned ELF on Debug and RelWithDebInfo builds for debugging coredumps, as an artifact. It finally dumps the VPK, Kernel Modules, and User Modules upon a successful build, as an artifact
Thanks for making this PR. I do have some questions about it, though. What does Azure offer us here that GitHub Actions cannot provide? I think it would be nice if we could stick to just GitHub Actions for CI, but there could be a benefit. I would also advice against using the gnuton container and use the official vitasdk/vitasdk:latest container instead. The gnuton one is really old and has some issues. |
A huge advantage, at least in my case, is that you can build apps both remotely on Microsoft's computers for free and your own local computers through the web interface while having relatively easy control over the build options (With the parameters GUI.) without needing to modify the pipeline file. I use it for quick builds of stuff I'm playing with on my phone while not in front of my main computer. I have tried using vitasdk/vitasdk:latest, but just get the following error about the container not running: |
I think you might also be able to build on multiple of your own computers simultaneously (With different jobs.) but I haven't tried that yet. |
I also am planning on building something or modifying an existing homebrew browser to automatically accept stuff I push and install to my Vita from Azure Devops release tasks (And pull up any coredumps that occur.), so this is the main building base of it. I thought it would be useful for other people as well. |
After looking into it more, it appears that this is the reason that vitasdk/vitasdk:latest doesn't work with Azure Devops. It needs to stay running when started up and has a few other requirements: https://learn.microsoft.com/en-us/azure/devops/pipelines/process/container-phases?view=azure-devops&tabs=linux#tabpanel_1_linux |
Adds extra options and some conveniences for self-hosted build agents. Changes positions of parameters for easier access to most important ones. Gives option between using the official vitasdk, gnuton vitasdk-docker, and a modifiable self-hosted vitasdk docker image stored for free on the self-hosted build agent or elsewhere (For testing purposes.). Adds information to the displayNames of the steps.
Add missing space separator for custom default $NINJA_STATUS
This is an Azure Devops pipeline file that uses gnuton/vitasdk-docker Docker image for building.
It is configurable with parameters before running.
Uses and sets up Ninja for building everything.
Dumps the CMake and Ninja files as an artifact upon build failure and as an option for easier debugging of compilation errors, as an artifact.
Dumps the unsigned ELF on Debug and RelWithDebInfo builds for debugging coredumps, as an artifact.
And finally dumps the VPK, Kernel Modules, and User Modules upon a successful build, as an artifact.
I still need to implement pulling files from the CMake Install directory, but this should hopefully work with existing projects.