blob: 30703c858e460dd70298bd7b66e4990af511d8bb [file] [log] [blame]
Galina Kistanovafc176e72012-09-13 23:51:08 +00001===================================================================
2How To Add Your Build Configuration To LLVM Buildbot Infrastructure
3===================================================================
4
Galina Kistanovafc176e72012-09-13 23:51:08 +00005Introduction
6============
7
8This document contains information about adding a build configuration and
Dylan McKay985edb62017-02-05 21:21:23 +00009buildslave to private slave builder to LLVM Buildbot Infrastructure.
Galina Kistanovafc176e72012-09-13 23:51:08 +000010
Dylan McKay985edb62017-02-05 21:21:23 +000011Buildmasters
12============
13
14There are two buildmasters running.
15
16* The main buildmaster at `<http://lab.llvm.org:8011>`_. All builders attached
17 to this machine will notify commit authors every time they break the build.
18* The staging buildbot at `<http://lab.llvm.org:8014>`_. All builders attached
19 to this machine will be completely silent by default when the build is broken.
20 Builders for experimental backends should generally be attached to this
21 buildmaster.
Galina Kistanovafc176e72012-09-13 23:51:08 +000022
23Steps To Add Builder To LLVM Buildbot
24=====================================
25Volunteers can provide their build machines to work as build slaves to
26public LLVM Buildbot.
27
28Here are the steps you can follow to do so:
29
30#. Check the existing build configurations to make sure the one you are
31 interested in is not covered yet or gets built on your computer much
32 faster than on the existing one. We prefer faster builds so developers
33 will get feedback sooner after changes get committed.
34
35#. The computer you will be registering with the LLVM buildbot
36 infrastructure should have all dependencies installed and you can
37 actually build your configuration successfully. Please check what degree
38 of parallelism (-j param) would give the fastest build. You can build
39 multiple configurations on one computer.
40
41#. Install buildslave (currently we are using buildbot version 0.8.5).
42 Depending on the platform, buildslave could be available to download and
Dylan McKay8d438a82016-09-29 12:51:26 +000043 install with your package manager, or you can download it directly from
Galina Kistanovafc176e72012-09-13 23:51:08 +000044 `<http://trac.buildbot.net>`_ and install it manually.
45
46#. Create a designated user account, your buildslave will be running under,
47 and set appropriate permissions.
48
49#. Choose the buildslave root directory (all builds will be placed under
50 it), buildslave access name and password the build master will be using
51 to authenticate your buildslave.
52
53#. Create a buildslave in context of that buildslave account. Point it to
54 the **lab.llvm.org** port **9990** (see `Buildbot documentation,
55 Creating a slave
Dylan McKayadbcf572016-09-29 13:29:49 +000056 <http://docs.buildbot.net/current/tutorial/firstrun.html#creating-a-slave>`_
Galina Kistanovafc176e72012-09-13 23:51:08 +000057 for more details) by running the following command:
58
59 .. code-block:: bash
60
61 $ buildslave create-slave <buildslave-root-directory> \
62 lab.llvm.org:9990 \
63 <buildslave-access-name> <buildslave-access-password>
64
Galina Kistanova4de93bd2017-07-05 20:45:44 +000065 To point a slave to silent master please use lab.llvm.org:9994 instead
66 of lab.llvm.org:9990.
67
Galina Kistanovafc176e72012-09-13 23:51:08 +000068#. Fill the buildslave description and admin name/e-mail. Here is an
69 example of the buildslave description::
70
71 Windows 7 x64
72 Core i7 (2.66GHz), 16GB of RAM
73
74 g++.exe (TDM-1 mingw32) 4.4.0
75 GNU Binutils 2.19.1
76 cmake version 2.8.4
77 Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
78
79#. Make sure you can actually start the buildslave successfully. Then set
80 up your buildslave to start automatically at the start up time. See the
81 buildbot documentation for help. You may want to restart your computer
82 to see if it works.
83
84#. Send a patch which adds your build slave and your builder to zorg.
85
86 * slaves are added to ``buildbot/osuosl/master/config/slaves.py``
87 * builders are added to ``buildbot/osuosl/master/config/builders.py``
88
Nico Weber930f9742019-12-06 17:28:02 -050089 Please make sure your builder name and its builddir are unique through the
90 file.
Galina Kistanovaaa80df02017-04-24 21:06:29 +000091
Nico Weber930f9742019-12-06 17:28:02 -050092 It is possible to whitelist email addresses to unconditionally receive
93 notifications on build failure; for this you'll need to add an
94 ``InformativeMailNotifier`` to ``buildbot/osuosl/master/config/status.py``.
95 This is particularly useful for the staging buildmaster which is silent
96 otherwise.
Dylan McKay985edb62017-02-05 21:21:23 +000097
Galina Kistanovafc176e72012-09-13 23:51:08 +000098#. Send the buildslave access name and the access password directly to
99 `Galina Kistanova <mailto:gkistanova@gmail.com>`_, and wait till she
100 will let you know that your changes are applied and buildmaster is
101 reconfigured.
102
103#. Check the status of your buildslave on the `Waterfall Display
104 <http://lab.llvm.org:8011/waterfall>`_ to make sure it is connected, and
105 ``http://lab.llvm.org:8011/buildslaves/<your-buildslave-name>`` to see
106 if administrator contact and slave information are correct.
107
108#. Wait for the first build to succeed and enjoy.