Re: Daily Snake Farm report

Anders Qvist <[email protected]> Wed, 4 Sep 2002 23:19:59 +0200
Newsgroups gmane.comp.python.snake-farm.reports,gmane.comp.python.snake-farm.user
Message-ID <[email protected]>
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.

On Wed, Sep 04, 2002 at 10:44:04PM +0200, Snake Farmer wrote:
> Recent builds:
>    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.

> Contributing heroes:
> 
> > 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