blob: 441411c12756a6feeb59cb645ba0ec6911bea479 [file] [log] [blame] [view]
Steven Bennetts33ee0bd2017-03-24 21:06:061# Life of a Chrome commit on Chrome OS
2
Mike Frysinger05bebd52021-01-27 18:48:113*** note
4**Warning: This document is old & has moved. Please update any links:**<br>
5https://chromium.googlesource.com/chromiumos/docs/+/HEAD/chrome_commit_pipeline.md
6***
7
Steven Bennetts33ee0bd2017-03-24 21:06:068This document provides a brief overview of how Chrome changes get committed
9and tested on Chrome OS.
10
11For details on non-Chrome **Chrome OS** changes, see
12[Life of a Chrome OS commit](cros_commit_pipeline.md).
13
14## Create a Chrome change
15
16### Make and upload changes
17
18See the section on [contributing code] at [chromium.org]
19for how to create a branch and make changes.
20
21Once a change is completed and tested locally, upload it to [codereview]:
22
23```git cl upload```
24
25### Have your change reviewed
26
Ben Pastene7ad54002020-02-07 00:46:1827Before submitting the code, use [Gerrit] to have it reviewed like any standard
28Chrome OS CL. See [contributing code] for details.
Steven Bennetts33ee0bd2017-03-24 21:06:0629
30## The Chrome commit pipeline
31
32### The Commit Queue and Tryservers
33
34The Chrome [commit queue] has a very large pool of builders that will apply
Ben Pastene7ad54002020-02-07 00:46:1835individual changes to the master, build them, and test them.
Steven Bennetts33ee0bd2017-03-24 21:06:0636
37#### Before the patch is approved
38
39A developer can click on 'Choose trybots' to select specific builders to run
40(there are a lot of them).
41
42Alternately they can click 'CQ dry run' to run all of the builders that the
43CQ will run in advance, without scheduling a commit.
44
45#### The commit queue
46
Ben Pastene7ad54002020-02-07 00:46:1847Once a change has been reviewed and approved, the developer can apply the CQ+2
48label, which marks the change ready for the CQ.
Steven Bennetts33ee0bd2017-03-24 21:06:0649
Ben Pastene7ad54002020-02-07 00:46:1850Depending on what was changed, the CQ selects a suite of trybots for
51[android], [cros], [linux/fuchsia], [mac/ios], and [win].
Steven Bennetts33ee0bd2017-03-24 21:06:0652
Ben Pastene7ad54002020-02-07 00:46:1853The [cros] trybots include:
54- [linux-chromeos-rel]: a linux builder with `target_os = "chromeos"` that runs
55`browser_tests` and `unit_tests` for Chrome on Chrome OS.
56- [chromeos-amd64-generic-rel]: a Simple Chrome builder that runs telemetry and
57dep:Chrome Tast tests in amd64-generic VMs.
Steven Bennetts33ee0bd2017-03-24 21:06:0658
59If the CQ builders succeed then the change will be committed to the master.
Ben Pastene7ad54002020-02-07 00:46:1860Otherwise the 'CQ+2' label will need to be reapplied once the failure is fixed
61or determined to be unrelated to the change.
Steven Bennetts33ee0bd2017-03-24 21:06:0662
63### The chromium waterfall
64
65Once a change is committed on the master, it is picked up by the
66[chromium waterfall]. This includes a very large number of builders that will
Ben Pastene7ad54002020-02-07 00:46:1867thoroughly test the commit, including a number of [public Chrome OS builders]
68and a few [private builders]. Their tests can run on linux-chromeos, Chrome OS
69VMs, and Chrome OS DUTs (Device Under Test).
Steven Bennetts33ee0bd2017-03-24 21:06:0670
71*Note: Due to lab limitations not every builder in the waterfall is included
Ben Pastene7ad54002020-02-07 00:46:1872in the Commit Queue. For Chrome OS there are a few Debug and device testers that
73only exist on the waterfall. Failures there are infrequent but possible, so keep
74an eye out!*
Steven Bennetts33ee0bd2017-03-24 21:06:0675
76## The Chrome OS commit pipeline for Chrome changes
77
George Engelbrechtb4154002020-02-05 20:45:2178Once a Chrome change lands in the master, it needs to be landed via [PUpr]
79uprev before it will be picked up by Chrome OS. PUpr watches chrome tags
80as they are created each day and cuts a CL to the current gardener to land.
81Changes are included in ChromeOS builds once the uprev CL makes it through
82the ChromeOS CQ. There is a [PUpr Dashboard] that shows the current status
83of the uprev CLs as well as the age of the current chrome version on ChromeOS.
Steven Bennetts33ee0bd2017-03-24 21:06:0684
Evan Benn6a6383b2019-10-31 23:01:0785[contributing code]: contributing.md
Mike Frysinger9fc0fc02020-09-05 05:18:5786[commit queue]: https://chromium.googlesource.com/chromium/src/+/HEAD/infra/config/generated/cq-builders.md
87[chromium.org]: https://www.chromium.org
Ben Pastene7ad54002020-02-07 00:46:1888[Gerrit]: https://chromium-review.googlesource.com/
89[android]: https://ci.chromium.org/p/chromium/g/tryserver.chromium.android
90[cros]: https://ci.chromium.org/p/chromium/g/tryserver.chromium.chromiumos
91[mac/ios]: https://ci.chromium.org/p/chromium/g/tryserver.chromium.mac
92[linux/fuchsia]: https://ci.chromium.org/p/chromium/g/tryserver.chromium.linux
93[win]: https://ci.chromium.org/p/chromium/g/tryserver.chromium.win
94[linux-chromeos-rel]: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux-chromeos-rel
95[chromeos-amd64-generic-rel]: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/chromeos-amd64-generic-rel
96[chromium waterfall]: https://ci.chromium.org/p/chromium/g/main/console
97[public Chrome OS builders]: https://ci.chromium.org/p/chromium/g/chromium.chromiumos/builders
98[private builders]: https://ci.chromium.org/p/chrome/g/chrome/builders
George Engelbrechtb4154002020-02-05 20:45:2199[PUpr]: https://g3doc.corp.google.com/company/teams/chrome/ops/chromeos/continuous_integration/pupr.md?cl=head
100[PUpr Dashboard]: http://go/chromeos-dash-pupr-chrome