URL:
https://svn.lrde.epita.fr/svn/lrde-tools/trunk/buildbot/masters
ChangeLog:
2007-11-20 Benoit Sigoure <tsuna(a)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(a)gostai.com"t@gostai.com",
- lookup="gostai.com",
+c['status'].append(mail.MailNotifier(fromaddr="buildbot(a)lrde.epita.fr"rde.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-an…
+#
http://buildbot.sourceforge.net/manual-0.7.4.html#Getting-Source-Code-Chang…
+
+# 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-an…
+
+## 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(a)lrde.epita.fr"rde.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(a)gostai.com"t@gostai.com",
- lookup="gostai.com",
+c['status'].append(mail.MailNotifier(fromaddr="buildbot(a)lrde.epita.fr"rde.epita.fr",
+ lookup="lrde.epita.fr",
mode="problem",
sendToInterestedUsers=True))
#