Skip to content

Build Champion

Rob Lourens edited this page Feb 9, 2021 · 30 revisions

This page describes the Build Champion role. This is a weekly rotating role.

Daily Goals

Build Status

  1. Make sure the build is green
  2. Make sure it releases Insiders every day

Process

Given build failures, make sure to pay attention to the #build Slack channel. It should notify who's likely responsible.

Insider build

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.

Troubleshooting build failures

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.
yarn error 1. error Your lockfile needs to be updated, but yarn was run with --frozen-lockfile. On master, pull the latest changes. Run yarn. If there are changes to yarn.lock, review and push them.
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.

FAQ

What happened to the public DevOps continuous build?

We managed to improve the Product build considerably to the point that it now runs on every push, effectively becoming our continuous build. So we dropped the old continuous build: https://dev.azure.com/vscode/VSCode.

Additionally, we have a parallel public continuous build running on GitHub Actions, which mostly validates PRs.

How do the builds run?

All our builds run in Azure DevOps and are scripted using YAML build definition files:

Clone this wiki locally