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