How to setup a buildslave? -------------------------- 1. Install Buildbot ------------------- Buildbot is a Python application, you need to install Python 2.2+. Download & install: - Twisted 2.2: http://twistedmatrix.com/trac/ - ZopeInterface 3.0.1: http://www.zope.org/Products/ZopeInterface - Buildbot 0.7.2: http://sourceforge.net/project/showfiles.php?group_id=73177 The Buildbot installer creates a buildbot script in /usr/bin. On Windows, buildbot.bat is installed in the %PYTHON\Scripts folder. Test your buildbot install by running the buildbot script. 2. Creating a buildslave ------------------------ Creating a buildslave is explained in the Buildbot manual: http://buildbot.sourceforge.net/manual-0.7.2.html#Creating-a-buildslave Before you can install the buildslave, you'll need some information from the buildmaster administrator: - your botname and password. The botname is a unique id for your buildslave. Current botnames include the OS+version, compiler and processor architecture. (eg. osx10.4-gcc4.0.1-ia32, xp-vs2003-ia32...) - hostname and port on which the buildmaster is listening. - hostname and port on which the TryScheduler is listening. - username and password for the FTP server where you can send the test log- files. Make sure you fill in the info/host file with some information concerning your buildslave. 3. Setting up the buildslave ---------------------------- A build on a slave is always triggered and managed by the Buildmaster. In fact, by connecting to the buildmaster, the slave gives full shell access on his machine to the buildmaster! Make sure you run the slave in an account with limited access. The build process is split in 4 steps. - svn checkout or update - build - check - clean The first step is handled by the buildbot code (SVNStep) and can not be further configured on the buildslave. For all the other steps you have to provide scripts and put them in the slavedir/[botname] folder. You can copy and reuse the scripts the other buildbot slave owners use for Windows, Linux or Mac buildslaves. You can find them here: http://svn.apache.org/repos/asf/subversion/trunk/tools/buildbot/slaves 4. Builds --------- A build will be triggered each time someone commits changes on trunk or branches/1.4.x. If the buildslave is not online, then the build will be stored in the queue and started when the buildslave connects. Normally each build only includes the changes of one commit. However, when multiple changes arrive during a previous build, those will be combined in a next build. The buildmaster looks at each commit and decides if they are important enough to trigger a build. Documentation, contrib, www... changes are typically ignored. 5. Try ------ Buildbot has a feature that allows a Subversion developer to test a patch she's working on on one of the builders. Example, someone working on Linux might want to test a major change first on a Windows builder before committing the patch. It's up to you to choose whether your buildslave can accept patches or not, there's no obligation. Basically by allowing patches to be tried on your buildslave you give people the ability to compile and execute arbitrary code on your machine. Try access is password protected and will be reserved to Subversion full committers. How to use the try feature: TryScheduler is installed on its own dedicated port. It can be used by a client with 'buildbot try': http://buildbot.sourceforge.net/manual-0.7.5.html#try Contact the buildmaster administrator for the username & password which you need to use 'buildbot try'.