BuildBot: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{{outdated}} | {{outdated}} | ||
'' | ''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! | 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! | ||
Revision as of 02:09, 23 April 2017
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:
- install zope.interface. We used zope.interface-4.0.5.win-amd64-py2.7.exe.
- install Twisted 64-bit for Windows. We used .exe version 13.1.0.
- build and install BuildBot slave 0.8.7p1
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: