BuildBot

From ASCEND
Jump to: navigation, search

Our buildbot is now partly online (Apr 2017). When we resolve some outstanding DNS issues, we should be able to make it visible again.

The ASCEND BuildBot is currently up and running at http://build.ascend4.org/. If you have a reliable machine that you can contribute as a build-slave, please let us know!

Setting up a MinGW-w64 buildslave

Follow the instructions for setting up a MinGW-w64 build environment. Then, broadly following these instructions, we suggest:

wget https://pypi.python.org/packages/source/b/buildbot-slave/buildbot-slave-0.8.7p1.tar.gz --no-check-certificate
tar zxf buildbot-slave-0.8.7p1.tar.gz
cd buildbot-slave-0.8.7p1
python setup.py bdist_wininst
start dist/buildbot-slave-0.8.7p1.win-amd64.exe
  • Setup the buildbot:
export BBSLAVEHOME=/home/buildslave
export BBSLAVENAME=name
export BBSLAVEPW=password
export BBHOST=build.ascend4.org
export BBPORT=port number
mkdir -p $BBSLAVEHOME/$BBSLAVENAME
cd $BBSLAVEHOME/$BBSLAVENAME
buildslave create-slave $BBSLAVEHOME/$BBSLAVENAME $BBHOST:$BBPORT $BBSLAVENAME $BBSLAVEPW

You can run the slave manually, just to test it, using

buildslave start $BBSLAVEHOME/$BBSLAVENAME

To get this running in a permanent way, however, you will want to install as a service. The suggested approach (following this guide) is:

  • In the start menu, type 'Local Security Policy', right-click the resulting program icon, and run as administrator.
  • In the left pane, enter 'Local Policies', then 'User Rights Assignment'. Then, in the right pane, locate 'Log on as a service' and add the buildslave user to the list.
  • As an administrator, run MSYS and type
python /c/Python27/Scripts/buildbot_service.py --username .\\yourusername --password yourpassword --startup auto install
  • You should see 'Service installed'.
  • In the start menu, type 'Services', then, right-clicking on the found program icon, select 'run as administrator'
  • Start the 'BuildBot' service. It is supposed to fail at this stage.
  • In the start menu, type 'regedit', then, right-clicking on the found program icon, select 'run as administrator'
  • Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Buildbot
  • Right-click on the 'Buildbot' folder, click 'Permissions'. Add the user 'buildslave' and grant full permissions to that user.
  • Returning to the 'Services' tool, start the 'BuildBot' service. It is supposed to fail again at this stage, but in doing so will create a new parameter set that we can now edit.
  • Back in regedit, naviate to 'Buildbot' and press F5 to refresh the view. A new 'Parameters' sub-folder appears. Enter this 'Parameters' folder, then in the right pane, right-click and create new 'String value' named 'directories'. Double-click the resulting key, and enter its value as 'c:\mingw\msys\home\buildslave\win7-64'.

The remaining job is to get the necessary environment variables set up for this service. In the case of a MinGW-w64 buildbot, this is a bit tricky, because normally the environment is set up nicely by bash when you enter your MSYS shell, but Buildbot is not running from inside bash (at least we can't work out yet how to do that). To take a snapshot of your MSYS environment, in a form suitable for pasting into a Windows dialog box etc, enter MSYS and type

cmd
env > myenv.txt
exit

There are two ways to set environment variables for buildslave:

  • In the start menu, type 'Environment, and select 'Edit environment variables for your account'. You can specify a PATH user variable here, and it will work well when the service starts (but you may need to restart the machine first). On our system, we set this to
PATH=.;C:\mingw\msys\local\bin;c:\mingw\64\bin;C:\mingw\msys\bin;c:\Windows\system32;c:\Windows;c:\Windows\System32\Wbem;c:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files\SlikSvn\bin;c:\Python27;c:\Python27\Scripts
  • Follow these instructions to add an 'Environment' key in your Buildbot service in regedit. On our system, we added HOME, <t>variables using this method (as shown below). We tried setting PATH here (which would have been nicer than a global user setting) but it didn't work.
HOME=C:/mingw/msys/home/buildslave
OSTYPE=msys

TODO figure out if there is a way to modify the buildbot_service.py so that a custom environment can be specified just for the buildslave.

See also: