Revert style changes on instructions page.
[build-farm.git] / web / instructions.html
1
2 <h2>Adding a machine to the build farm</h2>
3
4 <p>
5 If you have a machine that you wish to add to our build farm then please follow the following instructions:
6 </p>
7
8 <ul>
9
10   <li>Decide if your machine is suitable for the task:
11   <ul>
12     <li>Is it a production machine?</li>
13     <li>Is it security-sensitive?</li>
14     <li>Look at the output from the existing machines - would publishing
15     file-system locations and IPs be a concern?</li>
16     <li>The nature of the task is that executable code is downloaded from
17     (a site claiming to be) samba.org, and run on your machine by cron.
18     Does this bother you?</li>
19     <li>Is this somebody else's machine?</li>
20   </ul>
21   If you answer yes to <em>any</em> of these these questions, then we probably
22   should not include it on the build farm.</li>
23   
24   <li>See if it is an OS/architecture combination that we already
25   have. If it is then we won't need it unless the current machine we
26   have covering that combination goes away for some reason.  </li>
27
28   <li><p>Make sure your machine is able to open an outgoing TCP connection
29   to build.samba.org on port 873 (the rsync port). Test this by running
30   <pre>
31     rsync build.samba.org::
32   </pre>
33   and seeing if you get back the list of rsync modules.</p>
34   <p>
35   Note: there has been reports that rsync will work via http proxy. A simple
36   <pre>
37      export RSYNC_PROXY=cache:3128
38   </pre>
39   before running rsync should be all that is needed.</p></li>
40
41   <li>If all is OK then create an account called "build" on the
42   machine. If you can't create accounts then you can use an existing
43   account, no special privileges are needed, just change ~build to your
44   home directory in the instructions below.</li>
45
46   <li>Make sure a recent version of <a href="https://rsync.samba.org/">rsync</a>
47   is installed on the machine</li>
48
49   <li>Create a directory ~build/build_farm/. You will need about 120MB of
50   free space for this directory.</li>
51
52   <li>(optional) Install <a href="https://ccache.samba.org">ccache</a>
53   and set a reasonable cache size (300MB would be plenty).  This
54   massively reduces the compilation times and system load for certain
55   changes.</li>
56
57   <li>Grab the script build_test from cvs or from <a
58   href="https://www.samba.org/ftp/unpacked/build_farm/build_test">https://www.samba.org/ftp/unpacked/build_farm/build_test</a>
59   and put it in ~build/build_farm/ .</li>
60
61   <li>Edit the script if necessary to update the location of the build_farm
62   directory.</li>
63
64   <li>Tell <a href="mailto:build@samba.org">The build farm
65   maintainers</a> the name of your machine (as given by the hostname
66   command) and its OS and architecture plus what C compilers are
67   installed. One of the team will send you a password. Put that in a
68   file called ".password" in the build_farm directory.</li>
69
70   <li>Run the script build_test once manually and make sure the build ran OK.
71   Look in build.log for errors.</li>
72   
73   <li>Setup a cron job to run build_test regularly. You may wish to use
74   "nice" to reduce its priority, for example I use the following cron
75   entry:
76   <pre>
77     0,30 * * * * /bin/nice /home/build/build_farm/build_test 2> /home/build/cron.err
78   </pre>
79   </li>
80   <li>Check that <a href="https://build.samba.org/">build.samba.org</a>
81   is showing your new host and that it is being updated regularly. </li>
82   
83 </ul>
84 <p>
85   Note that only a very small amount of bandwidth is used. 
86   Andrew Bartlett reports having seen 6 of the boxes in the farm from behind a
87   modem, and it only used a tiny proportion of that modems bandwidth.  
88   He also reports having had 2 of the machines behind a modem - dial-up links
89   are fine too.
90 </p>
91 <p>Thanks!</p>
92