-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Create full build pipeline in Azure DevOps #6698
Comments
Please @ me if you need me to chase anything down on the Microsoft side for you. |
Thanks @btholt! I think the main thing for me is finding time to work out how everything works 😛 The docs seem pretty good though. Will try to take a look soon. |
@btholt - Is it possible to install prerequisites on the build system? For example, our Windows build requires WiX (http://wixtoolset.org/). On Linux I'd create a Docker image with everything installed, but I'm not sure if something similar could be done with Windows? I could pprobably make it a step in the build process (download the MSI and install/extract it), but that would slow down the builds. |
Let me ping the DevOps team and get back to you! |
Our image already has Wix preinstalled (see here), so if you use the base image you shouldn't need a container. If you want to you could create a container with everything but then you would have to download the container as part of the build process. |
Following on from #6495, it would be good to configure the full build pipeline in Azure DevOps so we consider using it exclusively. It should simplify releases a bit as we wouldn't have to wait for both CircleCI and AppVeyor to finish the build, and won't encounter issues where one passes while the other fials.
Parts of the build:
yarn install --frozen-lockfile
)./scripts/set-dev-version.js
)yarn build-dist
)yarn build-win-installer
). Must be ran on Windows./scripts/build-deb.sh
). Must be ran on Linuxmaster
builds:The current Azure DevOps pipeline runs some acceptance tests, and builds Yarn for each config (OS + Node.js version). I think we actually just need to restore packages and build Yarn once, and then can reuse those built artifacts for each test job (rather than having multiple jobs that each build then test Yarn).
One potential approach I can see for this is:
Build
job that runs on Linux - Restores packages, builds dist + the Debian and RPM packages, saves pipeline artifactsWindows Build
job - Restores pipeline artifacts from build job, builds the Windows installer, saves artifact (.msi file)Need to figure out whether Azure DevOps supports webhooks for deployment (either post the artifacts to the webhook, or allow retrieving them via an API).
cc @arcanis
The text was updated successfully, but these errors were encountered: