[Mono-devel-list] Automated builds
fawad at fawad.net
Wed May 19 08:29:29 EDT 2004
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
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
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