Add buildbot configuration.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Michael Wetherell
2007-09-28 11:39:39 +00:00
parent fd8a7b0b37
commit 74e6734592
3 changed files with 433 additions and 0 deletions

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>