From: Michael Wetherell <mike.wetherell@ntlworld.com> Date: Fri, 28 Sep 2007 11:39:39 +0000 (+0000) Subject: Add buildbot configuration. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/74e6734592400bb121fe89eb853ff489704fadbc Add buildbot configuration. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/build/buildbot/config/common.xml b/build/buildbot/config/common.xml new file mode 100644 index 0000000000..2e2f0daa9e --- /dev/null +++ b/build/buildbot/config/common.xml @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + Name: common.xml + Purpose: Schedulers and locks common to all slaves. + Author: Mike Wetherell + RCS-ID: $Id$ + Copyright: (c) 2007 Mike Wetherell + Licence: wxWidgets licence +--> + +<bot xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + xsl:version="1.0"> + +<xi:include href="include.xml" xpointer="xpointer(*/*)"/> + +<!-- + Quick schedulers. Builds using these are triggered after each change to + the sources on the given branch. + + name: unique + branch: branch to watch + treeStableTimer: wait until the tree has stopped changing for the + given number of seconds before firing + fileNotImportant: files matching these patterns do not trigger a build +--> + +<scheduler> + <name>trunk_quick</name> + <branch>trunk</branch> + <treeStableTimer>900</treeStableTimer> + <fileNotImportant>doc/*</fileNotImportant> +</scheduler> + +<scheduler> + <name>stable_quick</name> + <branch><STABLE_BRANCH/></branch> + <treeStableTimer>900</treeStableTimer> + <fileNotImportant>doc/*</fileNotImportant> +</scheduler> + +<!-- + Schedulers that fire once a week. + + A build can use one of these to be triggered once a week, or more than + one if it should run several times a week on particular days. +--> + +<nightly> + <name>sunday_6am</name> + <hour>6</hour> + <dayOfWeek>0</dayOfWeek> +</nightly> + +<nightly> + <name>monday_6am</name> + <hour>6</hour> + <dayOfWeek>1</dayOfWeek> +</nightly> + +<nightly> + <name>tuesday_6am</name> + <hour>6</hour> + <dayOfWeek>2</dayOfWeek> +</nightly> + +<nightly> + <name>wednesday_6am</name> + <hour>6</hour> + <dayOfWeek>3</dayOfWeek> +</nightly> + +<nightly> + <name>thursday_6am</name> + <hour>6</hour> + <dayOfWeek>4</dayOfWeek> +</nightly> + +<nightly> + <name>friday_6am</name> + <hour>6</hour> + <dayOfWeek>5</dayOfWeek> +</nightly> + +<nightly> + <name>saturday_6am</name> + <hour>6</hour> + <dayOfWeek>6</dayOfWeek> +</nightly> + +<!-- + Schedulers for daily builds. +--> + +<nightly> + <name>daily_6am</name> + <hour>6</hour> +</nightly> + +<!-- + Track SVN changes using the wx-cvs mailing list. + The <prefix> is subtracted from the paths in the 'Modified Files:' + section, the remainder is then assumed to give the branch and filename. +--> + +<svnmaildirsource> + <prefix>wxWidgets</prefix> +</svnmaildirsource> + +</bot> diff --git a/build/buildbot/config/example.xml b/build/buildbot/config/example.xml new file mode 100644 index 0000000000..5c79147ba5 --- /dev/null +++ b/build/buildbot/config/example.xml @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + Name: example.xml + Purpose: Buildbot example configuration. + Author: Mike Wetherell + RCS-ID: $Id$ + Copyright: (c) 2007 Mike Wetherell + Licence: wxWidgets licence + + There is one xml file such as this per build slave containing a <build> + element for each build the slave runs. Each <build> corresponds to a + column in the waterfall display. +--> + +<bot xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + xsl:version="1.0"> + +<!-- + Common declarations. +--> +<xi:include href="include.xml" xpointer="xpointer(*/*)"/> + +<!-- + Notes: + + The elements marked 'Unique' below must be unique across all builds on + all slaves. + + If a build is currently failing because of something other than a bug in + wxWidgets, e.g. out of space or missing libs, then comment it out, or + add '** Ignore **' to the beginning of the <name>, so that wxWidgets + developers know not to waste time investigating. +--> +<build> + <!-- + Unique. Appears as the title in the waterfall display. + --> + <name>Linux x86_64 wxGTK Stable</name> + + <!-- + Unique. The name of a directory for the bulid. On most slaves must + be a single name, on the Testdrive builds it must be a path such as + '/tmp/wx/td_gtk'. + --> + <builddir>example_gtk</builddir> + + <!-- + The name of a scheduler that will trigger this build. The schedulers + are usually defined in common.xml, look in there to see if there is + already one you can use, and add a new one if not. + + The 'trunk_quick' and 'stable_quick' schedulers currently in + common.xml trigger a build after every source change on the trunk + and stable branches respectively. There are also daily and weekly + schedulers 'daily_6am', 'monday_6am', 'tuesday_6am' and so on. + + The <scheduler> element can be omitted, in which case the build + never runs automatically, but can still be triggered manually. + Or you can use several, e.g. you could use two weekly schedulers + that fire on different days to have a build run twice a week. + --> + <scheduler>trunk_quick</scheduler> + + <!-- + The meaning of <sandbox> is specific to the build slave. There + should be a comment in the slave's configuration file saying if they + are allowed or required. On the testdrive it specifies the remote + machine that will run the bulid. + --> + <sandbox>debug</sandbox> + + <!-- + You can override the make command the compile steps will use using + this <make> element, if omitted defaults to 'make'. For Windows + builds this becomes the place to put build options as there is no + configure step. + --> + <make>nmake -f makefile.vc SHARED=1 CPPUNIT_CFLAGS=-I\cppunit\include CPPUNIT_LIBS=cppunit.lib</make> + + <!-- + The build steps. + --> + <steps> + <!-- + Check out the sources, by default the trunk branch. Or for a + particular branch or tag, e.g.: + <checkout branch="{$STABLE_BRANCH}"/> + <checkout branch="branches/WX_2_6_BRANCH"/> + --> + <checkout/> + + <!-- + A <shellcommand> build step can be used anywhere you need to run + arbitrary commands not covered by the standard build steps. + <haltOnFailure/> specifies that the whole build fails if this + step fails, without it it continues with the next step anyway. + --> + <shellcommand> + <description>setting up</description> + <descriptionDone>set up</descriptionDone> + <haltOnFailure/> + <command>setup-script</command> + </shellcommand> + + <!-- + Configure. Options and environment variables can be added with + the 'options' attribute: + <configure options="-with-foobar CC=cc CXX=CC"/> + Omitted for Windows builds. + --> + <configure/> + + <!-- + Compile the library. For Windows builds use <compile-msw/> + instead which runs the make command in the 'build\msw' + subdirectory instead of the wxWidgets root. + --> + <compile/> + + <!-- + Compile subdirectories. There is also <compile-contrib/> for + branches that have contrib. + --> + <compile-samples/> + <compile-utils/> + <compile-tests/> + + <!-- + Run the test suites. For Windows builds the command to run the + test suite must be overridden, e.g.: + <run-tests> + <command>PATH=..\lib\vc_dll;%PATH%</command> + <command>cd tests</command> + <command>vc_msw\test</command> + <command>vc_msw\test_gui</command> + </run-tests> + --> + <run-tests/> + </steps> +</build> + +</bot> diff --git a/build/buildbot/config/testdrive.xml b/build/buildbot/config/testdrive.xml new file mode 100644 index 0000000000..5abce6a566 --- /dev/null +++ b/build/buildbot/config/testdrive.xml @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + Name: testdrive.xml + Purpose: Buildbot configuration for the HP Testdrive. + Author: Mike Wetherell + RCS-ID: $Id$ + Copyright: (c) 2007 Mike Wetherell + Licence: wxWidgets licence +--> + +<bot xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + xsl:version="1.0"> + +<xi:include href="testdrive-inc.xml" xpointer="xpointer(*/*)"/> + +<!-- + Notes: + + The list of available machines is here: + http://www.testdrive.hp.com/current.shtml + Currently only unix hosts are supported, with hopefully one or more + Windows machines to follow. + + <sandbox> specifies the remote machine that will run the job, or it can + be 'debug' in which case the sandbox will just echo the commands. + + <builddir> specifies an absolute path on the remote machine for the + build, rather than the usual single directory name. The last component + also specifies a subdirectory on the master for logs, which as usual + must be unique across all slaves. + + An extra build step <setup> is required after <checkout> to set up + prerequisites such as ccache and cppunit. Cppunit generally needs to be + compiled by the same compiler that will be used for wxWidgets, add + configure options using the 'cppunit-options' attribute when needed, e.g.: + <setup cppunit-options="CC=cc CXX=CC"/> + + Cross compilers available on the Linux x86 machines (more coming): + powerpc-apple-darwin8 + i686-apple-darwin8 + + Please limit the number of quick builds to one unix, one Windows and one + Mac per branch. And please don't load up all the cpus of a remote machine + at once with make -j. +--> + +<build> + <name>Linux x86_64 wxGTK Trunk</name> + <sandbox>td162.testdrive.hp.com</sandbox> + <builddir>/tmp/wx/td_gtk</builddir> + <scheduler>trunk_quick</scheduler> + + <steps> + <checkout/> + + <setup/> + <configure/> + + <compile/> + <compile-samples/> + <compile-utils/> + <compile-tests/> + + <run-tests/> + </steps> +</build> + +<build> + <name>Linux x86_64 wxGTK Stable</name> + <sandbox>td166.testdrive.hp.com</sandbox> + <builddir>/tmp/wx/td_gtk_stable</builddir> + <scheduler>stable_quick</scheduler> + + <steps> + <checkout branch="{$STABLE_BRANCH}"/> + + <setup/> + <configure/> + + <compile/> + <compile-samples/> + <compile-utils/> + <compile-contrib/> + <compile-tests/> + + <run-tests/> + </steps> +</build> + +<build> + <name>OSX PowerPC wxMac Trunk</name> + <sandbox>td179.testdrive.hp.com</sandbox> + <builddir>/tmp/wx/td_mac</builddir> + <scheduler>trunk_quick</scheduler> + + <steps> + <checkout/> + + <setup cppunit-options="--host=powerpc-apple-darwin8"/> + <configure options="--host=powerpc-apple-darwin8"/> + + <compile/> + <compile-samples/> + <compile-utils/> + <compile-tests/> + </steps> +</build> + +<build> + <name>OSX Intel wxMac Stable</name> + <sandbox>td186.testdrive.hp.com</sandbox> + <builddir>/tmp/wx/td_mac_stable</builddir> + <scheduler>stable_quick</scheduler> + + <steps> + <checkout branch="{$STABLE_BRANCH}"/> + + <setup cppunit-options="--host=i686-apple-darwin8"/> + <configure options="--host=i686-apple-darwin8"/> + + <compile/> + <compile-samples/> + <compile-utils/> + <compile-contrib/> + <compile-tests/> + </steps> +</build> + +<build> + <name>FreeBSD x86 wxX11 Stable</name> + <sandbox>td152.testdrive.hp.com</sandbox> + <builddir>/tmp/wx/td_freebsd_stable</builddir> + <scheduler>daily_6am</scheduler> + + <steps> + <checkout branch="{$STABLE_BRANCH}"/> + + <setup/> + <configure options="--with-x11"/> + + <compile/> + <compile-samples/> + <compile-utils/> + <compile-contrib/> + <compile-tests/> + + <run-tests/> + </steps> +</build> + +<build> + <name>HP-UX 11i PA-RISC gcc wxMotif Stable</name> + <sandbox>td192.testdrive.hp.com</sandbox> + <builddir>/tmp/wx/td_hpux_pa_stable</builddir> + <scheduler>daily_6am</scheduler> + + <steps> + <checkout branch="{$STABLE_BRANCH}"/> + + <setup/> + <configure/> + + <compile/> + <compile-samples/> + <compile-utils/> + <compile-contrib/> + <compile-tests/> + + <run-tests/> + </steps> +</build> + +</bot>