1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# Instructions on how to use the buildrunner to execute builds.
The buildrunner is a script which extracts buildsteps from builders and runs
them locally on the slave. It is being developed to simplify development on and
reduce the complexity of the Chromium build infrastructure. When provided a
master name (with `master.cfg` inside) and a builder, it will either execute
steps sequentially or output information about them.
`runbuild.py` is the main script, while `runit.py` is a convenience script that
sets up `PYTHONPATH` for you. Note that you can use `runit.py` to conveniently
run other scripts in the `build/` directory.
[TOC]
## Master/Builder Selection
scripts/tools/runit.py scripts/slave/runbuild.py --list-masters
will list all masters in the search path. Select a mastername
(alternatively, use --master-dir to use a specific directory).
Next, we need to pick a builder or slave hostname to build. The slave hostname
is only used to locate a suitable builder, so it need not be the actual hostname
of the slave you're on.
To list all the builders in a master, run:
scripts/tools/runit.py scripts/slave/runbuild.py mastername --list-builders
Example, if you're in `/home/user/chromium/build/scripts/slave/`:
scripts/tools/runit.py scripts/slave/runbuild.py chromium --list-builders
will show you which builders are available under the `chromium` master.
## Step Inspection and Execution
You can check out the list of steps without actually running them like so:
scripts/tools/runit.py scripts/slave/runbuild.py chromium build56-m1 --list-steps
Note that some exotic steps, such as gclient steps, won't show up in
buildrunner.) You can show the exact commands of most steps with --show-
commands:
scripts/tools/runit.py scripts/slave/runbuild.py chromium build56-m1 --show-commands
Finally, you can run the build with:
scripts/tools/runit.py scripts/slave/runbuild.py mastername buildername/slavehost
Example, if you're in `/home/user/chromium/build/scripts/slave/`:
scripts/tools/runit.py scripts/slave/runbuild.py chromium build56-m1
or
scripts/tools/runit.py scripts/slave/runbuild.py chromium 'Linux x64'
`--stepfilter` and `--stepreject`` can be used to filter steps to execute based
on a regex (you can see which with `--list-steps`). See `-help`for more info.
## Properties
Build properties and factory properties can be specified using `--build-
properties` and `--factory-properties`, respectively. Since build properties
contain a master and builder directive, any master or builder options on the CLI
are ignored. Properties can be inspected with either or both of --output-build-
properties or --output-factory-properties.
## Monitoring
You can specify a log destination (including '`-`' for stdout) with `--logfile`.
Enabling `--annotate` will enable annotator output.
## Using Within a Buildstep
The an annotated buildrunner can be invoked via
chromium_commands.AddBuildStep(). Set the master, builder, and any
stepfilter/reject options in factory_properties. For example usage, see
f_linux_runnertest in master.chromium.fyi/master.cfg and
check_deps2git_runner in chromium_factory.py
## More Information
Running with `--help` provides more detailed usage and options. If you have any
questions or issues please contact xusydoc@chromium.org.
|