Skip to content
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

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

JeffreyO
Copy link

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.

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
@sharkwouter
Copy link
Contributor

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.

@JeffreyO
Copy link
Author

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:
##[error]Docker-exec executed: sh -c "command -v bash"; container id: [ID]; exit code: 1; command output: Error response from daemon: container [ID] is not running``

@JeffreyO
Copy link
Author

JeffreyO commented Aug 15, 2024

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.

@JeffreyO
Copy link
Author

JeffreyO commented Aug 15, 2024

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.

@JeffreyO
Copy link
Author

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants