[Mono-devel-list] Automated builds

Fawad Halim fawad at fawad.net
Wed May 19 08:29:29 EDT 2004

    Replies inline:

Jaroslaw Kowalski wrote:

>1. "My" setup is not actually mine. I took mcs/tools/tinderbox/tinderbox.sh
>and modified it slightly to work in my environment + I completely replaced
>"build_mono" procedure according to new build system. I use master Makefile
>that directs the build file just because it does quite a good job of
>detecting and propagating failures.
I'm thinking we use your Makefile for doing the actual build, and 
buildbot to  orchestrate and log it.

>2. It would be good to run some unit tests along with the build. I suggest
>running all nunit tests + testing xsp/mod_mono by wget'ting some test pages,
>making sure they don't return 500 or 404 and comparing the output against
>some patterns.
Once we have the initial install, adding stuff to the build targets is 
trivial. We just send a SIGHUP to the build clients.

>3. I can provide 2 machines for running the automated builds:
>Fedora Core 2/Athlon 1GHz
>Fedora Core 1/Athlon XP/1800+ on top of colinux (www.colinux.org)
>4. I haven't looked into buildbot, but the automated build system needs to
>a) automated ;-)
Check. Quite automated. Triggered by CVS

>b) 100% repeatable - it must ALWAYS start from scratch and never rely on
>partial builds
I looked at your script and the current system seems to be halfway 
there. It deletes the build directory and copies the CVS checkout 
directory again. We can merge stuff from your file to bring it full circle.

>I suggest following procedure:
>    1) restore a clean, known-to-work copy of entire mono tree. I usually do
>"rm -rf /opt/mono/*" before that. Alternatively RPMs can be used here.
>    2) get a clean, fresh CVS
>    3) reconfig, make bootstrap && make install
>    4) remove non-CVS files (using cvsclean.pl or similar)
>    5) reconfigure and make mono/mcs again which makes sure that the
>just-installed environment is able to recompile itself
>    6) Once 2-6 are successful, save the current mono as the new
>known-to-work copy for future use.
Got it. I'll just have to play around with this procedure myself to 
verify that it works.



More information about the Mono-devel-list mailing list