-
Notifications
You must be signed in to change notification settings - Fork 63
[ci] Switch to using the 1ES mandated pipeline template. #844
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
Conversation
64410a7 to
455aa02
Compare
b43c180 to
cbca107
Compare
4c61599 to
cd814c7
Compare
| pool: | ||
| name: AzurePipelines-EO | ||
| image: 1ESPT-Windows2022 | ||
| os: windows |
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.
Since you are still passing pool information at the job you should be able to safely delete this top level pool value.
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.
Looks like the latest run failed, perhaps this was needed:
/v1/1ES.Pipeline.yml@1esPipelines (Line: 345, Col: 287): Unexpected parameter 'Please specify a windows pool for SDLSources stage.
I ended up specifying this under the sdl element in other pipelines, though I'm not sure which approach is "more correct":
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: $(WindowsPoolImage1ESPT)
os: windowsAfter [migrating to the 1ES template](#844), when our build fails, no logs or artifacts are retained, making it very hard to diagnose the issue. Add an `always` condition to the output upload so these will get saved. Example build demonstrating artifacts are uploaded on failure: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=9440304&view=results
As part of Microsoft's continued push for supply chain security, our CI that builds shipping software must extend an "official" template that can be used to ensure various safety checks have run.
Unfortunately, this requires extensive changes to our CI to fit their model. This PR requires both necessary changes and cleanup done to make our process mesh better with the template.
The only functional difference should be:
WindowsandMacOSbuilds were copied to the same artifact directory ("nuget") which was signed and released. This meant that the last one written "won" and that's what we shipped. The new template didn't like multiple agents writing to the same output directory, so now we only write tooutput-windowsandoutput-macos, and we always sign and ship theoutput-windowsoutput.