buildfarm r470: Add a buildfarm for VCSN BMI and update configuration

URL: https://svn.lrde.epita.fr/svn/lrde-tools/trunk/buildbot/masters ChangeLog: 2007-11-20 Benoit Sigoure <tsuna@lrde.epita.fr> Add a buildfarm for VCSN BMI and update configuration. Move the web interfaces under /buildfarm. * oln_master.cfg, * vaucanson_master.cfg: Update the buildbotURL, remove useless import. * www/index.php: Adjust links. * create_buildmaster.sh: Remove robots.txt and adust the links. * template_gnu_master.cfg, * template_qt_master.cfg: Catch up with the current settings. * vaucanson-bmi_master.cfg: New. * apache_bf.conf: Enfore HTTPS, add rewrite rules for backward compatibility with existing URLs. Adjust all the reverse proxies. --- diffstat not available Index: trunk/buildbot/masters/oln_master.cfg =================================================================== --- trunk/buildbot/masters/oln_master.cfg (revision 469) +++ trunk/buildbot/masters/oln_master.cfg (revision 470) @@ -17,7 +17,7 @@ # with an externally-visible host name which the buildbot cannot figure out # without some help. -c['buildbotURL'] = 'https://olena.lrde.org' +c['buildbotURL'] = 'https://build.lrde.org/buildfarm/oln/' # 'slavePortnum' defines the TCP port to listen on. This must match the value # configured into the buildslaves (with their --master option) @@ -149,7 +149,6 @@ c['status'] = [] -import os from buildbot.status import html from buildbot.status.web.authentication import LDAPAuth c['status'].append(html.WebStatus(http_port="tcp:8042:interface=127.0.0.1", Index: trunk/buildbot/masters/www/index.php =================================================================== --- trunk/buildbot/masters/www/index.php (revision 469) +++ trunk/buildbot/masters/www/index.php (revision 470) @@ -9,8 +9,9 @@ <body> <h2>BuildFarms</h2> <ul> - <li><a href="oln/">Olena (trunk)</a></li> - <li><a href="vaucanson/">Vaucanson (trunk)</a></li> + <li><a href="buildfarm/oln/">Olena (trunk)</a></li> + <li><a href="buildfarm/vaucanson/">Vaucanson (trunk)</a></li> + <li><a href="buildfarm/vaucanson-bmi/">Vaucanson (bmi)</a></li> </ul> <h2>Latest builds</h2> <a href="/releases/"><strong>All releases</strong></a> Index: trunk/buildbot/masters/vaucanson_master.cfg =================================================================== --- trunk/buildbot/masters/vaucanson_master.cfg (revision 469) +++ trunk/buildbot/masters/vaucanson_master.cfg (revision 470) @@ -17,7 +17,7 @@ # with an externally-visible host name which the buildbot cannot figure out # without some help. -c['buildbotURL'] = 'https://vaucanson.lrde.org/' +c['buildbotURL'] = 'https://build.lrde.org/buildfarm/vaucanson/' # 'slavePortnum' defines the TCP port to listen on. This must match the value # configured into the buildslaves (with their --master option) @@ -149,7 +149,6 @@ c['status'] = [] -import os from buildbot.status import html from buildbot.status.web.authentication import LDAPAuth c['status'].append(html.WebStatus(http_port="tcp:8043:interface=127.0.0.1", Index: trunk/buildbot/masters/create_buildmaster.sh =================================================================== --- trunk/buildbot/masters/create_buildmaster.sh (revision 469) +++ trunk/buildbot/masters/create_buildmaster.sh (revision 470) @@ -233,6 +233,7 @@ done echo 'creating title.js' echo "document.title = '$project_name ' + document.title;" >title.js + rm -f robots.txt fi run cd "$here" @@ -260,7 +261,7 @@ # Add a link on the main page of the BF grep "$bb_dir_name" $BUILDFARM_WC/masters/www/index.php >/dev/null || { sed >/tmp/tmp$$.html "/<\\/ul>/i\\ - <li><a href=\"$bb_dir_name/\">$project_name ($branch_name)</a></li>" \ + <li><a href=\"buildfarm/$bb_dir_name/\">$project_name ($branch_name)</a></li>" \ $BUILDFARM_WC/masters/www/index.php || exit 1 mv -f /tmp/tmp$$.html $BUILDFARM_WC/masters/www/index.php || exit 1 chmod a+r $BUILDFARM_WC/masters/www/index.php Index: trunk/buildbot/masters/template_qt_master.cfg =================================================================== --- trunk/buildbot/masters/template_qt_master.cfg (revision 469) +++ trunk/buildbot/masters/template_qt_master.cfg (revision 470) @@ -129,14 +129,16 @@ c['status'] = [] -import os from buildbot.status import html +from buildbot.status.web.authentication import LDAPAuth c['status'].append(html.WebStatus(http_port="tcp:<WATERFALL_PORT_NUM>:interface=127.0.0.1", - allowForce=True)) + allowForce=True, + auth=LDAPAuth('beyrouth.lrde.epita.fr', + 'ou=people,dc=lrde,dc=epita,dc=fr'))) from buildbot.status import mail -c['status'].append(mail.MailNotifier(fromaddr="buildbot@gostai.com", - lookup="gostai.com", +c['status'].append(mail.MailNotifier(fromaddr="buildbot@lrde.epita.fr", + lookup="lrde.epita.fr", mode="problem", sendToInterestedUsers=True)) # Index: trunk/buildbot/masters/vaucanson-bmi_master.cfg =================================================================== --- trunk/buildbot/masters/vaucanson-bmi_master.cfg (revision 0) +++ trunk/buildbot/masters/vaucanson-bmi_master.cfg (revision 470) @@ -0,0 +1,204 @@ +# -*- python -*- +# ex: set syntax=python: +# vi: set ft=python: +# Doc @ http://buildbot.sourceforge.net/manual-0.7.4.html#Config-File-Format + +c = BuildmasterConfig = {} + +####### PROJECT IDENTITY +# http://buildbot.sourceforge.net/manual-0.7.4.html#Defining-the-Project + +c['projectName'] = 'Vaucanson' +c['projectURL'] = 'https://vaucanson.lrde.org/' + +# the 'buildbotURL' string should point to the location where the buildbot's +# internal web server (usually the html.Waterfall page) is visible. This +# typically uses the port number set in the Waterfall 'status' entry, but +# with an externally-visible host name which the buildbot cannot figure out +# without some help. + +c['buildbotURL'] = 'https://build.lrde.org/buildfarm/vaucanson-bmi/' + +# 'slavePortnum' defines the TCP port to listen on. This must match the value +# configured into the buildslaves (with their --master option) + +c['slavePortnum'] = 9944 + +####### CHANGESOURCES +# http://buildbot.sourceforge.net/manual-0.7.4.html#Listing-Change-Sources-and... +# http://buildbot.sourceforge.net/manual-0.7.4.html#Getting-Source-Code-Change... + +# the 'change_source' list tells the buildmaster how it should find out about +# source code changes. Any class which implements IChangeSource can be added +# to this list: there are several in buildbot/changes/*.py to choose from. + +import buildbot.changes.pb +c['change_source'] = [buildbot.changes.pb.PBChangeSource()] + +####### SCHEDULERS +# http://buildbot.sourceforge.net/manual-0.7.4.html#Listing-Change-Sources-and... + +## configure the Schedulers + +from buildbot.scheduler import AnyBranchScheduler +c['schedulers'] = [] +c['schedulers'].append(AnyBranchScheduler(name='all', branches=None, + treeStableTimer=10*60, + # When a change occurs, wait 10 minutes before + # lunching the build. + builderNames=['mingw32-gcc-3.4.5', + 'winxp-vcxx8', + 'powerpc-apple-darwin8-gcc-4.0.1', + 'i686-apple-darwin8-gcc-4.0.1', + 'i486-linux-gnu-gcc-4.1', + 'i486-linux-gnu-gcc-3.3'])) + + +####### BUILDSLAVES +# http://buildbot.sourceforge.net/manual-0.7.4.html#Buildslave-Specifiers + +# the 'slaves' list defines the set of allowable buildslaves. Each element is a +# tuple of bot-name and bot-password. These correspond to values given to the +# buildslave's mktap invocation. +from buildbot.buildslave import BuildSlave +c['slaves'] = [BuildSlave('bot-winxp-mingw', 'vWcOqp?Ij]1U!I'), + BuildSlave('bot-winxp-vcxx', '0QqZ9?6NqD-4*t'), + BuildSlave('bot-macppc', 'z>kh-"!d2rh++7'), + BuildSlave('bot-macx86', '53?{KO$%t-+3WU'), + BuildSlave('bot-linux-gcc3', ')$#+/<${>hm*k<'), + BuildSlave('bot-linux-gcc4', '8YqLZ4U"Biy.w!'), + ] + +####### BUILDERS +# http://buildbot.sourceforge.net/manual-0.7.4.html#Defining-Builders + +# the 'builders' list defines the Builders. Each one is configured with a +# dictionary, using the following keys: +# name (required): the name used to describe this bilder +# slavename (required): which slave to use, must appear in c['slaves'] +# builddir (required): which subdirectory to run the builder in +# factory (required): a BuildFactory to define how the build is run + +# buildbot/process/factory.py provides several BuildFactory classes you can +# start with, which implement build processes for common targets (GNU +# autoconf projects, CPAN perl modules, etc). The factory.BuildFactory is the +# base class, and is configured with a series of BuildSteps. When the build +# is run, the appropriate buildslave is told to execute each Step in turn. + +# the first BuildStep is typically responsible for obtaining a copy of the +# sources. There are source-obtaining Steps in buildbot/process/step.py for +# CVS, SVN, and others. + +builders = [] +from buildfactory import GNUBuildSystem + +mybranch='branches/bmi' + +f_vaucanson_unix = GNUBuildSystem(project_repos='vaucanson', + project_name='vaucanson-bmi', + branch=mybranch) + +f_vaucanson_unix_gcc3 = GNUBuildSystem(project_repos='vaucanson', + project_name='vaucanson-bmi', + branch=mybranch, + extra_configure_args='CC=gcc-3.3 CXX=g++-3.3', + install_dir='vaucanson-bmi_gcc3') + +f_vaucanson_mingw = GNUBuildSystem(project_repos='vaucanson', + project_name='vaucanson-bmi', + branch=mybranch, + extra_configure_args='--host=mingw32 --build=i686-pc-cygwin') + +f_vaucanson_vcxx = GNUBuildSystem(project_repos='vaucanson', + project_name='vaucanson-bmi', + branch=mybranch, + extra_configure_args='''CC=cccl CXX=cccl LD=cccl \\ + && sed "s/^host=.*/host=\'i686-pc-msvc++8\'/" -i config.log''') + +builder_vaucanson_winxp_mingw = {'name': 'mingw32-gcc-3.4.5', + 'slavename': 'bot-winxp-mingw', + 'builddir': 'vaucanson_winxp_mingw', + 'factory': f_vaucanson_mingw + } +builder_vaucanson_winxp_vcxx = {'name': 'winxp-vcxx8', + 'slavename': 'bot-winxp-vcxx', + 'builddir': 'vaucanson_winxp_vcxx', + 'factory': f_vaucanson_vcxx + } +builder_vaucanson_macppc = {'name': 'powerpc-apple-darwin8-gcc-4.0.1', + 'slavename': 'bot-macppc', + 'builddir': 'vaucanson_macppc', + 'factory': f_vaucanson_unix + } +builder_vaucanson_macx86 = {'name': 'i686-apple-darwin8-gcc-4.0.1', + 'slavename': 'bot-macx86', + 'builddir': 'vaucanson_macx86', + 'factory': f_vaucanson_unix + } +builder_vaucanson_linux_gcc4 = {'name': 'i486-linux-gnu-gcc-4.1', + 'slavename': 'bot-linux-gcc4', + 'builddir': 'vaucanson_linux_gcc4', + 'factory': f_vaucanson_unix + } +builder_vaucanson_linux_gcc3 = {'name': 'i486-linux-gnu-gcc-3.3', + 'slavename': 'bot-linux-gcc3', + 'builddir': 'vaucanson_linux_gcc3', + 'factory': f_vaucanson_unix_gcc3 + } + +c['builders'] = [builder_vaucanson_winxp_mingw, + builder_vaucanson_winxp_vcxx, + builder_vaucanson_macppc, + builder_vaucanson_macx86, + builder_vaucanson_linux_gcc3, + builder_vaucanson_linux_gcc4, + ] + +####### STATUS TARGETS +# http://buildbot.sourceforge.net/manual-0.7.4.html#Status-Delivery + +# 'status' is a list of Status Targets. The results of each build will be +# pushed to these targets. buildbot/status/*.py has a variety to choose from, +# including web pages, email senders, and IRC bots. + +c['status'] = [] + +from buildbot.status import html +from buildbot.status.web.authentication import LDAPAuth +c['status'].append(html.WebStatus(http_port="tcp:8044:interface=127.0.0.1", + allowForce=True, + auth=LDAPAuth('beyrouth.lrde.epita.fr', + 'ou=people,dc=lrde,dc=epita,dc=fr'))) + +from buildbot.status import mail +c['status'].append(mail.MailNotifier(fromaddr="buildbot@lrde.epita.fr", + lookup="lrde.epita.fr", + mode="problem", + sendToInterestedUsers=True)) +# +# from buildbot.status import words +# c['status'].append(words.IRC(host="irc.example.com", nick="bb", +# channels=["#example"])) +# +# from buildbot.status import client +# c['status'].append(client.PBListener(9988)) + + +####### DEBUGGING OPTIONS + +# if you set 'debugPassword', then you can connect to the buildmaster with +# the diagnostic tool in contrib/debugclient.py . From this tool, you can +# manually force builds and inject changes, which may be useful for testing +# your buildmaster without actually commiting changes to your repository (or +# before you have a functioning 'change_source' set up). The debug tool uses the +# same port number as the slaves do: 'slavePortnum'. + +#c['debugPassword'] = "debugpassword" + +# if you set 'manhole', you can ssh into the buildmaster and get an +# interactive python shell, which may be useful for debugging buildbot +# internals. It is probably only useful for buildbot developers. You can also +# use an authorized_keys file, or plain telnet. +#from buildbot import manhole +#c['manhole'] = manhole.PasswordManhole("tcp:9999:interface=127.0.0.1", +# "admin", "password") Index: trunk/buildbot/masters/apache_bf.conf =================================================================== --- trunk/buildbot/masters/apache_bf.conf (revision 469) +++ trunk/buildbot/masters/apache_bf.conf (revision 470) @@ -1,8 +1,19 @@ # vim:ft=apache Alias /releases /work/build/releases # Handle typos. -#XXX Redirect permanent /release https://buildfarm.lrde.org/releases -Redirect permanent /release http://buildfarm.lrde.org/releases +Redirect permanent /release https://buildfarm.lrde.org/releases + +# Enforce HTTPS +RewriteEngine on +RewriteCond %{SERVER_PORT} ^80$ +RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R] + +# Backward compat +RewriteRule ^(/oln/.*)$ /buildfarm$1 [L,R] +RewriteRule ^(/vaucanson/.*)$ /buildfarm$1 [L,R] + +#RewriteLog "/var/log/apache2/rewrite.log" +#RewriteLogLevel 2 # Do not put anything after this line <IfModule mod_proxy.c> @@ -14,9 +25,12 @@ Allow from all </Proxy> - ProxyPass /oln/ http://127.0.0.1:8042/ - ProxyPassReverse /oln/ http://127.0.0.1:8042/ + ProxyPass /buildfarm/oln/ http://127.0.0.1:8042/ + ProxyPassReverse /buildfarm/oln/ http://127.0.0.1:8042/ + + ProxyPass /buildfarm/vaucanson/ http://127.0.0.1:8043/ + ProxyPassReverse /buildfarm/vaucanson/ http://127.0.0.1:8043/ - ProxyPass /vaucanson/ http://127.0.0.1:8043/ - ProxyPassReverse /vaucanson/ http://127.0.0.1:8043/ + ProxyPass /buildfarm/vaucanson-bmi/ http://127.0.0.1:8044/ + ProxyPassReverse /buildfarm/vaucanson-bmi/ http://127.0.0.1:8044/ </IfModule> Index: trunk/buildbot/masters/template_gnu_master.cfg =================================================================== --- trunk/buildbot/masters/template_gnu_master.cfg (revision 469) +++ trunk/buildbot/masters/template_gnu_master.cfg (revision 470) @@ -163,14 +163,16 @@ c['status'] = [] -import os from buildbot.status import html +from buildbot.status.web.authentication import LDAPAuth c['status'].append(html.WebStatus(http_port="tcp:<WATERFALL_PORT_NUM>:interface=127.0.0.1", - allowForce=True)) + allowForce=True, + auth=LDAPAuth('beyrouth.lrde.epita.fr', + 'ou=people,dc=lrde,dc=epita,dc=fr'))) from buildbot.status import mail -c['status'].append(mail.MailNotifier(fromaddr="buildbot@gostai.com", - lookup="gostai.com", +c['status'].append(mail.MailNotifier(fromaddr="buildbot@lrde.epita.fr", + lookup="lrde.epita.fr", mode="problem", sendToInterestedUsers=True)) #
participants (1)
-
Benoit Sigoure