Skip to content

Build Champion

Ladislau Szomoru edited this page Aug 2, 2020 · 30 revisions

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

Daily Goals

  1. Make sure an Insider build is released daily Build Status
  2. Make sure the Continuous Build is green Build Status

Process

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

When there are hygiene or compilation errors, push a commit that fixes them and ping the responsible dev. If the fix isn't trivial, bring in the related developer to come up with a fix.

When there are test failures, comment out the test and create an issue for the test owner to fix. The same process applies even if the test is flaky. The rule is: a flaky test is as good as a failing test.

When there are code signing errors, retrigger builds. If the errors persist, file an issue to ESRP.

Else:

  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. Improve the Build Champion process by documenting whatever he tells you.

FAQ

Why do we have two builds?

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.

How do the builds run?

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

Clone this wiki locally