Revert "build_test.fns: use --with-perl-{lib,arch}-install-dir= for samba_4_*"
[build-farm.git] / README
1 This is the build system for build.samba.org
2
3 tridge@samba.org, April 2001
4 abartlet@samba.org / jelmer@samba.org, October 2010
5
6 New build machines
7 ==================
8
9 To set up a new build machine, you need to do this:
10
11 1) create an account on the box (I'll assume its called "build")
12 2) copy over build_test to ~build/build_farm/
13 3) put the right password in ~build/build_farm/.password
14 4) store host specific configuration (like PATH, hostname, ...)
15    in ~build/build_farm/build_test.settings.local
16 5) arrange for ~build/build_farm/build_test to be run regularly
17    from cron
18 6) add the host to the buildfarm using admin.py.
19 7) if desired, create a HOSTNAME.fns file that defines what gets built on
20    build.samba.org
21
22 Running the site
23 ================
24
25 The current build farm site is written in Python. It
26 manages a directory with raw build logs that get parsed and
27 displayed when viewing individual builds.
28
29 A sqlite database is used to store metadata about builds
30 (to prevent rereading all the logs when e.g. creating
31 the summary page). Information about the build farm machines
32 and their owners can also be found in the sqlite database.
33
34 You will need to have python-storm (our ORM), sqlite
35 and python-dulwich (pure-Python Git implementation) installed.
36 We don't use any fancy webby frameworks, everything just
37 outputs raw HTML.
38
39 To run the web site locally, run:
40
41  % python -m buildfarm.web.__init__
42
43 For build machine management, you can use the cli tool ./admin.py.
44 It should be fairly self-explanatory.
45
46 Logs are initially uploaded to data/upload/. Once they are processed
47 and an entry has been created in the database for them, they are
48 moved over to data/oldrevs/. After they have been moved they should only be
49 accessed when the full build log output is viewed.
50
51 There are some unit tests for the build farm objects. Run them using:
52
53  % python -m unittest buildfarm.tests.test_suite