blob: 31d629d8e4a433c421eeb92451e347ff67ff9001 [file] [log] [blame] [view]
John Budorick334ff282018-11-21 23:18:331# Using the trybots
2
3[TOC]
4
5## Overview
6
7The trybots let committers try uncommitted patches on multiple platforms in
8an automated way.
9
10 - Trybots include all platforms for which we currently build Chromium, though
11 they may not support all configurations built on CI.
12 - The commit queue runs a subset of available trybots. See [here][1] for more
13 information.
14 - trybots can be manually invoked via `git cl try` or the "Choose Trybots"
15 UI in gerrit.
16 - Any committer can use the trybots.
17 - Non-committers with tryjob access can also use the trybots. See [here][2]
18 for more information.
19 - External contributors without tryjob access can ask committers to run
20 tryjobs for them.
21
Stephen Martinisaad14f02021-10-05 20:31:2622*** note
23**Warning**: Please do not trigger more than ~5-10 tryjobs per builder per
24hour. We don't have enough spare capacity for more than that, and we don't have
25per-user quotas yet (https://crbug.com/1091070 to implement that).
26***
27
John Budorick334ff282018-11-21 23:18:3328## Workflow
29
301. Upload your change to gerrit via `git cl upload`
312. Run trybots:
32
33 * Run the default set of trybots by starting a CQ dry run, either by
34 setting CQ+1 on gerrit or by running `git cl try` with no arguments.
35 * Run trybots of your choice by providing arguments to `git cl try`:
36
37 * specify bucket name with `-B/--bucket`. For chromium tryjobs, this
38 should always be `luci.chromium.try`
39 * specify bot names with `-b/--bot`. This can be specified more than once.
40
41### Examples
42
43Launching a CQ dry run:
44
45```bash
46$ git cl try
47```
48
49Launching a particular trybot:
50
51```bash
Stephen Martinis089f5f02019-02-12 02:42:2452$ git cl try -B luci.chromium.try -b linux-rel
John Budorick334ff282018-11-21 23:18:3353```
54
55Launching multiple trybots:
56
57```bash
58$ git cl try -B luci.chromium.try \
59 -b android-binary-size \
60 -b ios-simulator-full-configs \
61 -b linux-blink-rel \
62 -b win7-blink-rel
63 # etc
64```
65
Robert Sesek823d8cf2020-07-28 20:27:5966## Trying Changes in Dependencies
67
68It is also possible to run a Chromium try job with a pending CL in a separate
69repository that is synced via DEPS. Normally DEPS files specify the SHA1
70revision hash of the dependency. But commits that are part of pending CLs are
71not part of the default
72[refspec](https://git-scm.com/book/en/v2/Git-Internals-The-Refspec) fetched when
73gclient checks out the dependency. Instead, you can specify a symbolic reference
74to your change, like `refs/changes/12/2277112/3`. To determine the ref to use,
75click the "Download" button on the dependency CL in Gerrit, which will show it
76as part of several git commands. Then edit the DEPS file in Chromium.
77
78If, for example, you wanted to test a pending V8 CL in Chromium, you would edit
79the DEPS line, which may look like this:
80
81```
82 'v8_revision': '50bc0b22b15da1410a1be6240a25a184d5896908',
83```
84
85And change it to:
86
87```
88 'v8_revision': 'refs/changes/12/2277112/3',
89```
90
91When you run the try job, gclient will sync in your pending CL. Note that if
92your pending CL is based on a revision that is either older or newer than the
93revision specified in DEPS, the tryjob may fail. You can rebase your CL to be on
94top of the same revision specified in the DEPS file to avoid this.
95
John Budorick334ff282018-11-21 23:18:3396## Bugs? Feature requests? Questions?
97
98[File a trooper bug.][3]
99
100## Legacy documentation
101
102 - [Design doc][4]
103
104[1]: /docs/infra/cq.md
105[2]: https://www.chromium.org/getting-involved/become-a-committer#TOC-Try-job-access
106[3]: https://g.co/bugatrooper
107[4]: https://www.chromium.org/developers/testing/try-server-usage/design