-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
Rewrite the entire Azure DevOps build system #34984
Conversation
…azure, legacy symbols)
…Azure DevOps cleans up its house" This reverts commit c6b5766.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I've moved all the pipelines to the |
I am still experimenting with the arm64 test runner - I would love to see it work but I understand if it can't work (and I have just one commit to revert if it doesn't.) |
🔥🔥🔥🔥🔥 |
I am investigating an issue where the signatures on the nuget packaged DLLs are not present. Step 1 for tomorrow is to determine whether this is true in the original pipeline as well. |
THIS IS NOT A REGRESSION |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thank you for the changes!
${{ else }}: | ||
OutputBuildPlatform: ${{ platform }} | ||
variables: | ||
# Azure DevOps abhors a vacuum |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤣
variables: | ||
EnablePipelineCache: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I dont' see this in the new ci.yml
This pull request rewrites the entire Azure DevOps build system.
The guiding principles behind this rewrite are:
template files.
artifactStem
on all templates that produce or consume artifacts).the production and indexing of PDBs.
step
orjob
first,which disambiguates them in the templates directory.
pool
s, so that we can putexpensive jobs on expensive build agents and cheap jobs on cheap
build agents. Some jobs handle pool selection on their own, however.
Our original build pipelines used the
VSBuild
task all over theplace. This resulted in PowerToys being built in myriad ways, different
for every pipeline. There was an attempt at standardization early on,
where
ci.yml
consumed jobs and steps templates... but whenrelease.yml
was added, all of that went out the window.It's the same story as Terminal (microsoft/terminal#15808).
The new pipelines are consistent and focus on a small, well-defined set
of jobs:
job-build-project
build-PLATFORM-CONFIG
for the entirematrix of possibilities.
job-test-project
build-PLATFORM-CONFIG
architectures and must choose the right agent arch.
job-publish-symbols-using-symbolrequestprod-api
**/*.pdb
from all prior build phases.stripped symbols to MSDL for public consumption.
Finally, this pull request has some additional benefits:
time, in the same step. They should be available in the public symbol
server for public folks to debug against!
agents.
ScreenResolutionUtility
is brokenUseDotNet
which wouldinstall the right architecture (🤦); see [BUG]: UseDotNet task installs x86 build on Windows arm64 azure-pipelines-tasks#20300.
step templates.
later, since all versioning happens in one place.