A buildbot is running at builder.blender.org, which controls a number of build workers that automatically make blender builds to offer users official daily builds, and for developers to quickly find out when things break on other platforms.
Buildbot master configuration files are located in bf-blender svn, under:
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 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 Workers
- Download and install the Buildbot Worker (not master), see the Buildbot manual for instructions.
- On Windows, install pywin32.
- Next, a number of changes have to be done on the server:
- A build worker 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 worker 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.
buildbot-worker create-worker <directory> builder.blender.org:9989 <workername> <password>
- After this, the worker can be started and stopped:
buildbot-worker start <directory> buildbot-worker 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 worker name and matching password, the same one as used to setup the build worker with the create-worker command.
The workername and password can be found in buildbot.tac, in the buildworker directory, or in master_private.py on the server.