This page describes the Build Champion role. This is a weekly rotating role.
- Make sure an Insider build is released daily
- Make sure the Continuous Build for the master branch is green
Given build failures, make sure to pay attention to the #build Slack channel. It should notify who's likely responsible.
Insiders build is scheduled to run every weekday at 5:00 AM UTC. Check the state of the most recent scheduled build, use the steps documented here to troubleshoot the build failures, and produce a successful build. The goal is to have an Insiders build released every weekday.
Build Error | Troubleshooting Steps |
---|---|
hygiene/compilation | 1. push a commit that fixes them and ping the responsible dev. 2. If the fix isn't trivial, bring in the related developer to come up with a fix. |
test failures/flaky test | 1. comment out the test and create an issue for the test owner to fix. Please add one of the following labels depending on the test type: integration-test-failure , smoke-test-failure , unit-test-failure . The rule is: a flaky test is as good as a failing test. |
other | 1. Try to reason about the failure, get familiar with the build infrastructure and attempt to fix it. 2. Reach out to the previous week's Build Champion, they might know something. 3. Reach out to João/Ladislau. Improve the Build Champion process by documenting whatever they tell you. |
💡 Note: After a fix was pushed to address the build failure, manually queue the build.
The Continuous Build is a public, lightweight build which runs on every commit and PR and has access to no credentials. It exists to make sure our code base is clean, compilable and tests are happy on branches and pull requests.
The Product Build is a private, heavyweight build which runs daily to produce Insiders, so it has access to credentials. It exists to create all VS Code distributable assets and place them on our builds page. Note: it's important that it never runs on PRs of external forks of VS Code.
All our builds run in Azure DevOps and are scripted using YAML build definition files: