blob: 275583f0463b1f208ceafb5a75f6d2c23af95b76 [file] [log] [blame] [view]
John Budorick334ff282018-11-21 23:18:331# Using the trybots
2
3[TOC]
4
5## Overview
6
Orr Bernsteinc5104bd992022-12-22 15:39:217The trybots let committers try uncommitted patches on multiple platforms in an
8automated way.
John Budorick334ff282018-11-21 23:18:339
Orr Bernsteinc5104bd992022-12-22 15:39:2110- Trybots include all platforms for which we currently build Chromium, though
11 they may not support all configurations built on CI.
Orr Bernsteinabb9debd2022-12-22 20:33:2212- The commit queue (CQ) runs a subset of available trybots. See [here][1] for
13 more information.
Ben Pastene434f7fbc2023-07-14 20:36:5514- Trybots can be manually invoked via `git cl try` or the "Choose Tryjobs" UI
Orr Bernsteinc5104bd992022-12-22 15:39:2115 in gerrit.
Ben Pastene434f7fbc2023-07-14 20:36:5516- Custom trybots can be added to the list of builders triggered and checked by
17 the CQ via the `Cq-Include-Trybots` commit message footer. See [here][2]
18 for more information.
Orr Bernsteinc5104bd992022-12-22 15:39:2119- Any committer can use the trybots.
Ben Pastene434f7fbc2023-07-14 20:36:5520- Non-committers with tryjob access can also use the trybots. See [here][3]
Orr Bernsteinc5104bd992022-12-22 15:39:2121 for more information.
22- External contributors without tryjob access can ask committers to run
23 tryjobs for them.
John Budorick334ff282018-11-21 23:18:3324
Stephen Martinisaad14f02021-10-05 20:31:2625*** note
Orr Bernsteinc5104bd992022-12-22 15:39:2126**Warning**: Please do not trigger more than ~5-10 tryjobs per builder
27per hour. We don't have enough spare capacity for more than that, and we don't
28have per-user quotas yet (https://crbug.com/1091070 to implement that).
Stephen Martinisaad14f02021-10-05 20:31:2629***
30
John Budorick334ff282018-11-21 23:18:3331## Workflow
32
Orr Bernsteinc5104bd992022-12-22 15:39:21331. Upload your change to gerrit via `git cl upload`
342. Run trybots:
John Budorick334ff282018-11-21 23:18:3335
Orr Bernsteinc5104bd992022-12-22 15:39:2136 * Run the default set of trybots by starting a CQ dry run, either by
37 setting CQ+1 on gerrit or by running `git cl try` with no arguments.
Ben Pastene434f7fbc2023-07-14 20:36:5538 * Manually run trybots of your choice by either the "Choose Tryjobs"
39 button in gerrit or providing arguments to `git cl try`:
John Budorick334ff282018-11-21 23:18:3340
Orr Bernsteinc5104bd992022-12-22 15:39:2141 * specify bucket name with `-B/--bucket`. For chromium tryjobs, this
42 should always be `luci.chromium.try`
43 * specify bot names with `-b/--bot`. This can be specified more than
44 once.
John Budorick334ff282018-11-21 23:18:3345
46### Examples
47
48Launching a CQ dry run:
49
50```bash
51$ git cl try
52```
53
54Launching a particular trybot:
55
56```bash
Stephen Martinis089f5f02019-02-12 02:42:2457$ git cl try -B luci.chromium.try -b linux-rel
John Budorick334ff282018-11-21 23:18:3358```
59
60Launching multiple trybots:
61
62```bash
63$ git cl try -B luci.chromium.try \
64 -b android-binary-size \
65 -b ios-simulator-full-configs \
66 -b linux-blink-rel \
67 -b win7-blink-rel
68 # etc
69```
70
Robert Sesek823d8cf2020-07-28 20:27:5971## Trying Changes in Dependencies
72
73It is also possible to run a Chromium try job with a pending CL in a separate
74repository that is synced via DEPS. Normally DEPS files specify the SHA1
75revision hash of the dependency. But commits that are part of pending CLs are
76not part of the default
77[refspec](https://git-scm.com/book/en/v2/Git-Internals-The-Refspec) fetched when
78gclient checks out the dependency. Instead, you can specify a symbolic reference
79to your change, like `refs/changes/12/2277112/3`. To determine the ref to use,
80click the "Download" button on the dependency CL in Gerrit, which will show it
81as part of several git commands. Then edit the DEPS file in Chromium.
82
83If, for example, you wanted to test a pending V8 CL in Chromium, you would edit
84the DEPS line, which may look like this:
85
86```
87 'v8_revision': '50bc0b22b15da1410a1be6240a25a184d5896908',
88```
89
90And change it to:
91
92```
93 'v8_revision': 'refs/changes/12/2277112/3',
94```
95
96When you run the try job, gclient will sync in your pending CL. Note that if
97your pending CL is based on a revision that is either older or newer than the
98revision specified in DEPS, the tryjob may fail. You can rebase your CL to be on
99top of the same revision specified in the DEPS file to avoid this.
100
John Budorick334ff282018-11-21 23:18:33101## Bugs? Feature requests? Questions?
102
Jonathan Lee666aeb42023-07-17 16:52:54103[File a trooper bug.]
John Budorick334ff282018-11-21 23:18:33104
105[1]: /docs/infra/cq.md
Ben Pastene434f7fbc2023-07-14 20:36:55106[2]: /docs/contributing.md#cl-footer-reference
107[3]: https://www.chromium.org/getting-involved/become-a-committer#TOC-Try-job-access
Jonathan Lee666aeb42023-07-17 16:52:54108[File a trooper bug.]: https://g.co/bugatrooper