URL: https://svn.lrde.epita.fr/svn/lrde-tools/trunk/buildbot/masters
ChangeLog:
2007-11-21 Benoit Sigoure <tsuna(a)lrde.epita.fr>
Add a buildfarm for Spot.
* www/index.php: Link to the new WebStatus.
* spot_master.cfg: New.
* create_buildmaster.sh: Adjust an echo message.
* apache_bf.conf: Add a reverse proxy for the new WebStatus.
* buildfactory.py: Make the `SCM checkout' step overridable (oh boy,
Spot is still on CVS).
---
diffstat not available
Index: trunk/buildbot/masters/www/index.php
===================================================================
--- trunk/buildbot/masters/www/index.php (revision 471)
+++ trunk/buildbot/masters/www/index.php (revision 472)
@@ -12,6 +12,7 @@
<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>
+ <li><a href="buildfarm/spot/">Spot</a></li>
</ul>
<h2>Latest builds</h2>
<a href="/releases/"><strong>All releases</strong></a>
Index: trunk/buildbot/masters/create_buildmaster.sh
===================================================================
--- trunk/buildbot/masters/create_buildmaster.sh (revision 471)
+++ trunk/buildbot/masters/create_buildmaster.sh (revision 472)
@@ -290,6 +290,6 @@
svn diff $BUILDFARM_WC
And once it's fine for you:
svn commit $BUILDFARM_WC --username <your_username>
- buildbot start `pwd`/$bb_dir_name
+ buildbot start $BUILDBOT_ROOT/$bb_dir_name
Make sure you patched Apache's configuration and restared it.
Note: You still have to create build slaves on the builders!"
Index: trunk/buildbot/masters/apache_bf.conf
===================================================================
--- trunk/buildbot/masters/apache_bf.conf (revision 471)
+++ trunk/buildbot/masters/apache_bf.conf (revision 472)
@@ -33,4 +33,7 @@
ProxyPass /buildfarm/vaucanson-bmi/ http://127.0.0.1:8044/
ProxyPassReverse /buildfarm/vaucanson-bmi/ http://127.0.0.1:8044/
+
+ ProxyPass /buildfarm/spot/ http://127.0.0.1:8045/
+ ProxyPassReverse /buildfarm/spot/ http://127.0.0.1:8045/
</IfModule>
Index: trunk/buildbot/masters/buildfactory.py
===================================================================
--- trunk/buildbot/masters/buildfactory.py (revision 471)
+++ trunk/buildbot/masters/buildfactory.py (revision 472)
@@ -49,7 +49,7 @@
def __init__ (self, project_repos,
project_name="", kernel_path=None, extra_configure_args="",
- bootstrap_cmd="", configure_cmd="",
+ scm_step="", bootstrap_cmd="", configure_cmd="",
compile_cmd="", check_cmd="", install_cmd="",
install_dir=None, upload_cmd="", distcheck_cmd="",
distcheck_configure_args="", dist_cmd="", extra_path=None, branch="",
@@ -100,9 +100,12 @@
description='fixing perms',
descriptionDone='fix perms', name='perms')
+ if scm_step == "":
self.addStep(scm.SVN,
baseURL=base_svn_url + project_repos + '/',
defaultBranch=self.branch, mode='copy')
+ elif scm_step is not None:
+ self.addStep(scm_step)
if install_dir is None or install_dir == "":
self.install_dir = self.project_name
@@ -287,7 +290,7 @@
"""
def __init__ (self, project_repos,
- project_name="", extra_qmake_args="",
+ project_name="", extra_qmake_args="", scm_step="",
bootstrap_cmd=None, configure_cmd="", compile_cmd="",
check_cmd=None, install_cmd=None, install_dir=None,
upload_cmd=None, extra_path=None, branch=""):
@@ -320,9 +323,12 @@
if self.branch == "":
self.branch = 'trunk';
+ if scm_step == "":
self.addStep(scm.SVN,
baseURL=base_svn_url + project_repos + '/',
defaultBranch=self.branch, mode='copy')
+ elif scm_step is not None:
+ self.addStep(scm_step)
if bootstrap_cmd == "":
self.bootstrap_cmd = './bootstrap'
@@ -394,7 +400,7 @@
def __init__ (self, project_repos,
project_name="", extra_scons_args="",
- compile_cmd="",
+ scm_step="", compile_cmd="",
check_cmd=None, install_cmd="", install_dir=None,
upload_cmd=None, extra_path=None, branch=""):
"""
@@ -426,9 +432,12 @@
if self.branch == "":
self.branch = 'trunk';
+ if scm_step == "":
self.addStep(scm.SVN,
baseURL=base_svn_url + project_repos + '/',
defaultBranch=self.branch, mode='copy')
+ elif scm_step is not None:
+ self.addStep(scm_step)
if compile_cmd == "":
self.compile_cmd = 'scons ' + self.extra_scons_args
Index: trunk/buildbot/masters/spot_master.cfg
===================================================================
--- trunk/buildbot/masters/spot_master.cfg (revision 0)
+++ trunk/buildbot/masters/spot_master.cfg (revision 472)
@@ -0,0 +1,205 @@
+# -*- 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'] = 'Spot'
+c['projectURL'] = 'https://spot.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/spot/'
+
+# 'slavePortnum' defines the TCP port to listen on. This must match the value
+# configured into the buildslaves (with their --master option)
+
+c['slavePortnum'] = 9945
+
+####### 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', 'RG,[{^a+]}aP,]'),
+ BuildSlave('bot-winxp-vcxx', 'I|(_b;)p*mZa0,'),
+ BuildSlave('bot-macppc', '!j<L%Q2@xb|zha'),
+ BuildSlave('bot-macx86', '.+rp+-D|(L#r-x'),
+ BuildSlave('bot-linux-gcc3', 'Y#j:6:3"Ep1_vV'),
+ BuildSlave('bot-linux-gcc4', ':.(cW/W!sh5#X]'),
+ ]
+
+####### 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
+from buildbot.steps.source import CVS
+checkout = CVS(cvsroot='anonymous@minium.lip6.fr:/Volumes/CVS/repository/spot',
+ cvsmodule='spot')
+
+f_spot_unix = GNUBuildSystem(project_repos='spot',
+ scm_step=checkout,
+ bootstrap_cmd='autoreconf -fvi')
+
+f_spot_unix_gcc3 = GNUBuildSystem(project_repos='spot',
+ scm_step=checkout,
+ bootstrap_cmd='autoreconf -fvi',
+ extra_configure_args='CC=gcc-3.3 CXX=g++-3.3',
+ install_dir='spot_gcc3')
+
+f_spot_mingw = GNUBuildSystem(project_repos='spot',
+ scm_step=checkout,
+ bootstrap_cmd='autoreconf -fvi',
+ extra_configure_args='--host=mingw32 --build=i686-pc-cygwin')
+
+f_spot_vcxx = GNUBuildSystem(project_repos='spot',
+ scm_step=checkout,
+ bootstrap_cmd='autoreconf -fvi',
+ extra_configure_args='''CC=cccl CXX=cccl LD=cccl \\
+ && sed "s/^host=.*/host=\'i686-pc-msvc++8\'/" -i config.log''')
+
+builder_spot_winxp_mingw = {'name': 'mingw32-gcc-3.4.5',
+ 'slavename': 'bot-winxp-mingw',
+ 'builddir': 'spot_winxp_mingw',
+ 'factory': f_spot_mingw
+ }
+builder_spot_winxp_vcxx = {'name': 'winxp-vcxx8',
+ 'slavename': 'bot-winxp-vcxx',
+ 'builddir': 'spot_winxp_vcxx',
+ 'factory': f_spot_vcxx
+ }
+builder_spot_macppc = {'name': 'powerpc-apple-darwin8-gcc-4.0.1',
+ 'slavename': 'bot-macppc',
+ 'builddir': 'spot_macppc',
+ 'factory': f_spot_unix
+ }
+builder_spot_macx86 = {'name': 'i686-apple-darwin8-gcc-4.0.1',
+ 'slavename': 'bot-macx86',
+ 'builddir': 'spot_macx86',
+ 'factory': f_spot_unix
+ }
+builder_spot_linux_gcc4 = {'name': 'i486-linux-gnu-gcc-4.1',
+ 'slavename': 'bot-linux-gcc4',
+ 'builddir': 'spot_linux_gcc4',
+ 'factory': f_spot_unix
+ }
+builder_spot_linux_gcc3 = {'name': 'i486-linux-gnu-gcc-3.3',
+ 'slavename': 'bot-linux-gcc3',
+ 'builddir': 'spot_linux_gcc3',
+ 'factory': f_spot_unix_gcc3
+ }
+
+c['builders'] = [builder_spot_winxp_mingw,
+ builder_spot_winxp_vcxx,
+ builder_spot_macppc,
+ builder_spot_macx86,
+ builder_spot_linux_gcc3,
+ builder_spot_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:8045: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",
+ 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")
Heavy trading Draws More Investors!
EnerBrite Technologies Group, Inc. (etG u) $0.01
Since Monday EnerBrite has been the focus of heavy trading as investors
scrambled to grab shares. Today's news released will only add more fuel
to the fire as this continues its steady climb. Don't let the holiday
pass without first moving on e TGU.
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",
- lookup="gostai.com",
+c['status'].append(mail.MailNotifier(fromaddr="buildbot(a)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-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",
+ 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",
- lookup="gostai.com",
+c['status'].append(mail.MailNotifier(fromaddr="buildbot(a)lrde.epita.fr",
+ lookup="lrde.epita.fr",
mode="problem",
sendToInterestedUsers=True))
#
Plop,
la nouvelle BF prends vie doucement sur http://buildfarm.lrde.org/
Comme vous pourrez le constater, c'est pas encore tout au point, mais
les 1ère builds tournent. Il manque l'accès HTTPS (soon), pour
l'instant y'a que des builders pour GCC4 et GCC3. Bientôt djo mettra
en place des hooks dans les SVN pour déclencher des builds à chaque
commit. Ceux qui font que ça marche plus recevront un mail leur
signalant le problème.
Si vous avez des remarques, des commentaires, des suggestions, des
feature requests ou des bugs, merci de me les signaler.
Merci à djo pour sa réactivité, comme d'hab ;o
--
SIGOURE Benoit aka Tsuna (SUSv3 compliant)
_____ "I think Git is definitely in the running
/EPITA\ Promo 2008.CSI/ACU/YAKA to be the dominate version control system."
-- Bob Proulx
Ça faisait longtemps qu'il n'y avait pas eu de release, la version 0.4
de svn-wrapper est maintenant dispo. Je n'ai pas maintenu de fichier
NEWS donc voici en gros ce qui a changé:
- Modif majeure: support de Git (cf. plus bas)
- B0rkenage des signatures GPG (ne pas utiliser pour l'instant :D)
- Corrections de problèmes de portabilité sur Ash (shell par défaut
sur GNU/Debian).
- svn ignore se comporte (a peu près) comme la commande ignore de VCS.
- Pleins de bug fixes, de "Do The Right Thing" et "Do What I Mean"[1].
Le script est maintenant hosté sur Git (http://repo.or.cz/w/svn-wrapper.git)
et la prochaine update (svn-wrapper.sh self-update) va sûrement se
plaindre, un truc du genre:
Wow, you're more up to date than the master copy :)
Your version is r241 and the master copy is r8.
Downgrade? [y/N]
Ce à quoi il faut juste répondre 'y' :)
Sinon, méthode bourrin:
wget 'http://repo.or.cz/w/svn-wrapper.git?a=blob_plain;f=svn-wrapper.sh;hb=HEAD' -O svn-wrapper.sh
chmod a+x svn-wrapper.sh
Le support de Git:
Je n'utilise (presque) plus SVN. Pour interagir avec les dépôts SVN,
j'utilise git-svn qui s'avère être un client SVN largement supérieur
à `svn' lui-même. J'avais donc besoin d'avoir les mêmes
fonctionnalités que svn-wrapper mais pour Git. Le script détecte
donc automatiquement les dépots Git et les dépots SVN, et "Does The
Right Thing" en fonction du SCM utilisé.
Les signatures GPG:
Pour l'instant j'utilisais une signature GPG-inline ce qui est chiant
car elle rends le patch dur à lire/extraire dans les mail readers qui
ne décodent pas le mail correctement. J'ai donc tenté d'implémenter
l'envois de signature en attachement PGP/MIME mais ça ne marche pas
(la signature envoyée est invalide, pour une raison qui m'échappe).
J'avoue que je ne me suis pas trop soucié de ce problème qui traîne
depuis plus de 2 mois puisque Git gère les tags signés avec GPG, je
ne m'embête plus à signer chaque commit.
Let me know if you run in troubles :)
[1] En parlant de DWIM, Jim Meyering a releasé la 1.0 de son vc-dwim:
http://lists.gnu.org/archive/html/bug-gnulib/2007-10/msg00135.html
« vc-dwim is a version-control-agnostic ChangeLog diff and commit tool.
vc-chlog is a ChangeLog writing helper tool. »
J'ai pas encore eu le temps de regarder, mais il se peut bien que
j'arrête de maintenir svnw si vc-dwim fait tout mieux ;)
--
SIGOURE Benoit aka Tsuna (SUSv3 compliant)
_____ "I think Git is definitely in the running
/EPITA\ Promo 2008.CSI/ACU/YAKA to be the dominate version control system."
-- Bob Proulx
>>> "The" == The LRDE Buildbot <tsuna(a)lrde.epita.fr> writes:
The> URL: https://svn.lrde.epita.fr/svn/lrde-tools/trunk/buildbot/masters
The> ChangeLog:
The> 2007-11-08 Benoit Sigoure <tsuna(a)lrde.epita.fr>
The> Add a buildfarm for Vaucanson.
The> * vaucanson_master.cfg: New.
The> * www/index.php: Link to the new waterfall.
C'est cool !
À quelle adresse peut-on lire le résultat ?
--
Alexandre Duret-Lutz