From BlenderWiki

Jump to: navigation, search

BuildBot

A buildbot is running at builder.blender.org, which controls a number of build slaves that automatically make blender builds to offer users official daily builds, and for developers to quickly find out when things break on other platforms.

Master

Buildbot master configuration files are located in bf-blender svn, under:

build_files/buildbot/

To actually update the server configuration, these are manually copied to the server. The buildbot master is started with

buildbot start /data/buildbot-master

Builders

Builders are a configuration for how to build for a particular platform. They consist of a number of steps, some optional:

  • svn update: updates source code form trunk
  • lib svn update: updates lib directory for a given platform (windows/mac only)
  • compile: rebuild blender
  • test: run tests
  • package: create package for upload
  • upload: transfer package to the server
  • unpack: server side updates for the new package

The compile, test and package steps are python scripts in blender svn. This is also the place to add any build configurations.

build_files/buildbot/slave_compile.py
build_files/buildbot/slave_test.py
build_files/buildbot/slave_pack.py

Adding Build Slaves

  • Download and install the Buildbot Slave (not master), see the Buildbot manual for instructions.
  • Next, a number of changes have to be done on the server:
    • A build slave account must be added in master_private.py.
    • If no relevant builder for the given platform exists yet, one must be created in master.cfg.
  • Once this is set up, the build slave can be set up. A directory must be specified, where buildbot will keep its configuration files, download the source code, and write build system output.
buildslave create-slave <directory> builder.blender.org:9989 <slavename> <password>
  • After this, the slave can be started and stopped:
buildslave start <directory>
buildslave stop <directory>

Force Rebuild and Cancel Build

A build can be started at any time, if you have the right username and password. For this you need a slave name and matching password, the same one as used to setup the build slave with the create-slave command.

The slavename and password can be found in buildbot.tac, in the buildslave directory, or in master_private.py on the server.