====== Buildbot master and slave ====== [[http://buildbot.net|buildbot]] is a continuous integration server that checks the quality of the OpenSRF and Evergreen build trees after every commit. The build results are visible at http://testing.evergreen-ils.org/buildbot/ ===== Setting up the buildbot master ===== - Install buildbot prereqs: http://buildbot.net/buildbot/docs/current/manual/installation.html - Install buildbot with ''easy_install buildbot'' (note that some patches are necessary for improved pylint support) - Create the buildmaster (skip this if you're just setting up a build slave): - ''adduser buildmaster'' - ''su - buildmaster'' - Initialize the buildmaster directory (where //opensrf-build// represents the directory of the build instance): ''buildbot create-master'' //opensrf-build// - ''cp OpenSRF/examples/buildbot.cfg /home/buildmaster/opensrf-build/master.cfg'' - ''set slavePortnum'' ===== Starting the buildbot master ===== To start the buildbot master: - ''su - buildmaster'' - Start the build instance, where //opensrf-build// represents the build directory: ''buildbot start'' //opensrf-build// ===== Setting up the buildbot slave ===== If you want to contribute a buildbot slave to the testing pool, contact Dan Scott for the port, buildslave name, and buildslave password that you should use to connect to the buildmaster. ==== Hardware prerequisites ==== A server with 16 GB of disk space and 512 MB of RAM should be plenty for a buildbot slave. ==== Firewall prerequisites ==== Your buildbot slave needs to be able to initiate an outbound connection to a port on testing.evergreen-ils.org, but does not need to allow any inbound connections (other than for your own administrative purposes, naturally!). ==== Steps ==== - Install ''git'' - it's a prerequisite for actually running the builds once the slave is up and running. - Download OpenSRF. - (//OpenSRF buildslave//): Just install the prerequisites from OpenSRF's Makefile.install to satisfy build dependencies. - (//Evergreen buildslave//): Also configure, build, and install OpenSRF itself. - (//Evergreen buildslave//): Download Evergreen and install the prerequisites from the Makefile.install - easy_install buildbot-slave - Install pylint (on Debian, "aptitude --without-recommends pylint" to avoid X deps) - Create the buildslave (should be slave specific, like "openslave" or "egslave"): - adduser openslave - su - openslave - buildslave create-slave opensrf-slave localhost: opensrf-slave - Edit ''opensrf-slave/info/admin'' and change the administrator name / email address to your own - buildslave start opensrf-slave