the Chromium logo

The Chromium Projects

Life of a Chrome commit on ChromeOS

This document provides a brief overview of how Chrome changes get committed and tested on ChromeOS.

For details on non-Chrome ChromeOS changes, see Life of a ChromeOS commit.

Create a Chrome change

Make and upload changes

See the section on contributing code at chromium.org for how to create a branch and make changes.

Once a change is completed and tested locally, upload it to [codereview]:

git cl upload

Have your change reviewed

Before submitting the code, use Gerrit to have it reviewed like any standard ChromeOS CL. See contributing code for details.

The Chrome commit pipeline

The Commit Queue and Tryservers

The Chrome commit queue has a very large pool of builders that will apply individual changes to the master, build them, and test them.

Before the patch is approved

A developer can click on 'Choose trybots' to select specific builders to run (there are a lot of them).

Alternately they can click 'CQ dry run' to run all of the builders that the CQ will run in advance, without scheduling a commit.

The commit queue

Once a change has been reviewed and approved, the developer can apply the CQ+2 label, which marks the change ready for the CQ.

Depending on what was changed, the CQ selects a suite of trybots for android, cros, linux/fuchsia, mac/ios, and win.

The cros trybots include:

If the CQ builders succeed then the change will be committed to the master. Otherwise the 'CQ+2' label will need to be reapplied once the failure is fixed or determined to be unrelated to the change.

The chromium waterfall

Once a change is committed on the master, it is picked up by the chromium waterfall. This includes a very large number of builders that will thoroughly test the commit, including a number of public ChromeOS builders and a few private builders. Their tests can run on linux-chromeos, ChromeOS VMs, and ChromeOS DUTs (Device Under Test).

Note: Due to lab limitations not every builder in the waterfall is included in the Commit Queue. For ChromeOS there are a few Debug and device testers that only exist on the waterfall. Failures there are infrequent but possible, so keep an eye out!

The ChromeOS commit pipeline for Chrome changes

Once a Chrome change lands in the master, it needs to be landed via PUpr uprev before it will be picked up by ChromeOS. PUpr watches chrome tags as they are created each day and cuts a CL to the current gardener to land. Changes are included in ChromeOS builds once the uprev CL makes it through the ChromeOS CQ. There is a PUpr Dashboard that shows the current status of the uprev CLs as well as the age of the current chrome version on ChromeOS.