Files
CoolProp/Web/develop/buildbot.rst
Ian Bell 9a558f4969 Tidied up buildbot docs
Signed-off-by: Ian Bell <ian.h.bell@gmail.com>
2014-09-25 01:23:30 +02:00

86 lines
3.2 KiB
ReStructuredText

********
Buildbot
********
Buildbot masters and slaves
===========================
Master
------
From the root of the git checkout (this will use the master.cfg from CoolProp)::
pip install buildbot
cd dev/buildbot
buildbot create-master master
buildbot start master
The file ``buildbot-private.py`` (which is a python module with the passwords for the slaves as well as the buildbot website), should also be placed in the master folder next to master.cfg. Alternatively, you can put the ``buildbot_private.py`` in another folder on the master's computer and make a soft-link in the master folder to point to the buildbot_private.py file.
If you want to completely restart the master, you can do::
buildbot restart master
but usually a::
buildbot reconfig master
will do the job since it will just reparse the configuration file without signing you out of the server
To ensure that the buildbot server stays online, you can make a script with the contents::
buildbot start /path/to/master_folder
and add it to a cron job
Slaves
------
To start a slave connected to a buildbot master at IP address 10.0.0.2 (default for host for VirtualBox), with a slave named ``example-slave`` and passsword ``pass``, run the command::
buildslave create-slave slave 10.0.0.2:9989 example-slave pass
buildslave start slave
If the master is somewhere else, just change the IP address. As of Sept, 2014, the master was at www.coolprop.dreamhosters.com. The buildbot_private.py on the master holds the required passwords.
On linux, you can add the following lines to the end of your ``~/.profile`` file (similar ideas apply on other platforms) to autostart the slave when the user logs in::
# Connect to the buildbot master
buildslave start ~/slave
Setting MIME type handler
=========================
To change the MIME types on the server so that unknown file types will map properly to ``application/octet-stream``, modify the ``buildbot.tac`` file to add the following block::
from twisted.web.static import File
webdir = File("public_html")
webdir.contentTypes['.mexw32'] = 'application/octet-stream'
webdir.contentTypes['.mexw64'] = 'application/octet-stream'
webdir.contentTypes['.mexmaci64'] = 'application/octet-stream'
webdir.contentTypes['.jnilib'] = 'application/octet-stream'
webdir.contentTypes['.mexa64'] = 'application/octet-stream'
webdir.contentTypes['.oct'] = 'application/octet-stream'
webdir.contentTypes['.whl'] = 'application/octet-stream'
webdir.contentTypes['.dylib'] = 'application/octet-stream'
...
and then do a ``buildbot restart master``
Nightly Documentation Builds
============================
Some parts of the documentation are quite involved. That is why we decided not
to rebuild the whole documentation after every commit. There is a special buildbot
slave that runs once a day and performs the most expensive jobs. This covers the
generation of validation figures for all fluids and the fitting reports for the
incompressible fluids.
If you have some tasks that take a long time, make sure to add them to that
special machine. This helps us to keep the continuous integration servers running
with an acceptable latency with regard to the commit to the git repository.