-
Notifications
You must be signed in to change notification settings - Fork 351
Pipeline Performance Optimization: Make Static Analysis Run Parallelly with Build #5364
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
base: main
Are you sure you want to change the base?
Conversation
…DK-Build-Per-Platform-Stage.yml
/azp run |
Azure Pipelines failed to run 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines failed to run 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
Currently I tried to go with option 2 (Results: https://dev.azure.com/microsoft/ProjectReunion/_build/results?buildId=121725042&view=results), given that PREfast has been moved to a separate stage and they can run parallelly if resource allows. If we agree on running prefast for all three archs, I'll proceed to make the code changes in building MRT steps as well. Do you know how I can confirm whether PREfast results are the same for x86, x64, and arm64? (Just by build log, or do I actually have to manually make code changes to fail some PREfast checks and compare results?) |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
@alexlamtest I have updated current PR with option 1. Below are some of the results while making the decision:
|
…DK-Build-Per-Platform-Stage.yml
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
@alexlamtest, I will suggest let Muyuan to checkin the one only improve performance first, which the result is promising and without increase much build agent cost (i.e. 4.3% only) |
This PR shortens build time by around 50 minutes for foundation repo, while only increase absolute build time by 25 minutes.
Below are running results for Foundation PR Build:
Before Change
After Change
Currently largest bottleneck building foundation is static analysis, which can be run independently but currently blocks dependent stage from running. After this change, now during build, two build stage will start in parallel - one without static analysis to allow dependent steps like Test or Pack to run, the other with static analysis
A microsoft employee must use /azp run to validate using the pipelines below.
WARNING:
Comments made by azure-pipelines bot maybe inaccurate.
Please see pipeline link to verify that the build is being ran.
For status checks on the main branch, please use TransportPackage-Foundation-PR
(https://microsoft.visualstudio.com/ProjectReunion/_build?definitionId=81063&_a=summary)
and run the build against your PR branch with the default parameters.