Discussion:
Daily Snake Farm report
Anders Qvist
2002-09-04 21:19:59 UTC
Permalink
Whee! Things are finally starting to work out. This is the new format
of the build reports from the snake-farm, now running Xenofarm. The
Xenofarm also builds Pike (the lpc derived programming language) and
lyskom-server (a conference system used by (among others) several
Swedish Universities).

Why Xenofarm? While Xenofarm is slightly more complex than the old
build-scripts, it is much better equiped to build a multitude of
different modules. In ultra-quick version, it works like this:

1) the server script polls the CVS and builds a new tar ball when
changes are detected. The tar ball contains a makefile with a
special target called xenofarm.

2) The build client HEADs a URL and if it has changed downloads the
tarball att the URL. It unpacks it and does make xenofarm.

3) The xenofarm targets executes a script that the server added to the
tarball (called create-response.sh) which does configure/make/make
test, writes the output from these commands to a tarball and
uploads the ball to the web server.

4) A result-parser polls the upload directory for new tarballs and
enter info into mysql database and unpacks the tarball to a special
directiory.
49 - 2002-09-02 21:09
50 - 2002-09-03 06:24
51 - 2002-09-03 19:38
52 - 2002-09-03 20:31
53 - 2002-09-03 20:58
54 - 2002-09-03 21:25
55 - 2002-09-03 21:31
56 - 2002-09-04 00:03
57 - 2002-09-04 01:31
58 - 2002-09-04 11:36
59 - 2002-09-04 15:29
This is the list of builds the last 48 hours. The number is the ID for
the build.
asmodean.lysator.liu.se [Linux 2.2.19-6.2.10 alpha] <
49 - failed http://www.lysator.liu.se/xenofarm/python/files/49_6
50 - failed http://www.lysator.liu.se/xenofarm/python/files/50_6
51 - failed http://www.lysator.liu.se/xenofarm/python/files/51_6
55 - failed http://www.lysator.liu.se/xenofarm/python/files/55_6
56 - failed http://www.lysator.liu.se/xenofarm/python/files/56_6
57 - failed http://www.lysator.liu.se/xenofarm/python/files/57_6
58 - failed http://www.lysator.liu.se/xenofarm/python/files/58_6
59 - failed http://www.lysator.liu.se/xenofarm/python/files/59_6
final build failed
Each build machine that contributed during the period has an entry
like this, which lists its builds and their status. To the left is the
build number and to the right is the URL pointing to the result
information.
vanity [Linux 2.4.18 i686] <
50 - failed http://www.lysator.liu.se/xenofarm/python/files/50_1
51 - failed http://www.lysator.liu.se/xenofarm/python/files/51_1
56 - new successful build [0 warnings]
total 4 builds [0 warnings; +0]
The result-mailer only reports successful builds if it is the first or
last build successful build this period. If a machine has only
successful builds, this will be summarized into one line.

The warning count doesn't work yet.

No fancy status web pages yet, but we'll get there in a while.

This is the content of a so-called result (as pointed out by one of
the URLs above).

buildid.txt 3.0 bytes text/plain
configure.pass 0.0 bytes application/octet-stream
configurelog.txt 12.5 kB text/plain
environ.txt 212.0 bytes text/plain
export.stamp 3.0 bytes application/octet-stream
exportstamp.txt 3.0 bytes text/plain
machineid.txt 287.0 bytes text/plain
mainlog.txt 272.0 bytes text/plain
make.pass 0.0 bytes application/octet-stream
makelog.txt 86.4 kB text/plain
path.txt 57.0 bytes text/plain
pyconfig.h 23.8 kB text/x-include-file
shlog.txt 286.0 bytes text/plain
unpack.pass 0.0 bytes application/octet-stream
unpacklog.txt 0.0 bytes text/plain
unzip.pass 0.0 bytes application/octet-stream
unziplog.txt 0.0 bytes text/plain

Each relevant step is marked with a .passed or .failed stamp file.
(make test is missing in this set, but should appear in the first
sharp one). The shlog.txt script is the output from the result creater
itself. machineid.txt gives info about the machine. Some info about
the environment is also supplied, as well as the pyconfig.h file.

Xenofarm can be found in

http://cvs.lysator.liu.se/viewcvs/viewcvs.cgi/?cvsroot=xenofarm

It includes all the stuff you need except this config file, which goes
into client/config/python.cfg (without initial spaces):

configformat: 2
project: Python
projectdir: python
snapshoturl: http://www.lysator.liu.se/xenofarm/python/builds/latest
resulturl: http://www.lysator.liu.se/xenofarm/python/builds/result
mindelay: 01:00
test: default make xenofarm
--
Anders "Quest" Qvist

"We've all heard that a million monkeys banging on a million typewriters
will eventually reproduce the entire works of Shakespeare. Now, thanks
to the Internet, we know this is not true." -- Robert Wilensky
Loading...