[Checkins] SVN: Sandbox/janjaapdriessen/buildbot/ rework of the buildbot projects
Jan-Jaap Driessen
jdriessen at thehealthagency.com
Fri Apr 16 10:31:42 EDT 2010
Log message for revision 110972:
rework of the buildbot projects
Changed:
_U Sandbox/janjaapdriessen/buildbot/
A Sandbox/janjaapdriessen/buildbot/bootstrap.py
U Sandbox/janjaapdriessen/buildbot/buildout.cfg
-=-
Property changes on: Sandbox/janjaapdriessen/buildbot
___________________________________________________________________
Modified: svn:ignore
- bin
+ bin
develop-eggs
parts
.installed.cfg
Added: Sandbox/janjaapdriessen/buildbot/bootstrap.py
===================================================================
--- Sandbox/janjaapdriessen/buildbot/bootstrap.py (rev 0)
+++ Sandbox/janjaapdriessen/buildbot/bootstrap.py 2010-04-16 14:31:41 UTC (rev 110972)
@@ -0,0 +1,121 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id$
+"""
+
+import os, shutil, sys, tempfile, urllib2
+from optparse import OptionParser
+
+tmpeggs = tempfile.mkdtemp()
+
+is_jython = sys.platform.startswith('java')
+
+# parsing arguments
+parser = OptionParser()
+parser.add_option("-v", "--version", dest="version",
+ help="use a specific zc.buildout version")
+parser.add_option("-d", "--distribute",
+ action="store_true", dest="distribute", default=False,
+ help="Use Distribute rather than Setuptools.")
+
+parser.add_option("-c", None, action="store", dest="config_file",
+ help=("Specify the path to the buildout configuration "
+ "file to be used."))
+
+options, args = parser.parse_args()
+
+# if -c was provided, we push it back into args for buildout' main function
+if options.config_file is not None:
+ args += ['-c', options.config_file]
+
+if options.version is not None:
+ VERSION = '==%s' % options.version
+else:
+ VERSION = ''
+
+USE_DISTRIBUTE = options.distribute
+args = args + ['bootstrap']
+
+to_reload = False
+try:
+ import pkg_resources
+ if not hasattr(pkg_resources, '_distribute'):
+ to_reload = True
+ raise ImportError
+except ImportError:
+ ez = {}
+ if USE_DISTRIBUTE:
+ exec urllib2.urlopen('http://python-distribute.org/distribute_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0, no_fake=True)
+ else:
+ exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+ if to_reload:
+ reload(pkg_resources)
+ else:
+ import pkg_resources
+
+if sys.platform == 'win32':
+ def quote(c):
+ if ' ' in c:
+ return '"%s"' % c # work around spawn lamosity on windows
+ else:
+ return c
+else:
+ def quote (c):
+ return c
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+ws = pkg_resources.working_set
+
+if USE_DISTRIBUTE:
+ requirement = 'distribute'
+else:
+ requirement = 'setuptools'
+
+if is_jython:
+ import subprocess
+
+ assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',
+ quote(tmpeggs), 'zc.buildout' + VERSION],
+ env=dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse(requirement)).location
+ ),
+ ).wait() == 0
+
+else:
+ assert os.spawnle(
+ os.P_WAIT, sys.executable, quote (sys.executable),
+ '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout' + VERSION,
+ dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse(requirement)).location
+ ),
+ ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout' + VERSION)
+import zc.buildout.buildout
+zc.buildout.buildout.main(args)
+shutil.rmtree(tmpeggs)
Modified: Sandbox/janjaapdriessen/buildbot/buildout.cfg
===================================================================
--- Sandbox/janjaapdriessen/buildbot/buildout.cfg 2010-04-16 14:28:02 UTC (rev 110971)
+++ Sandbox/janjaapdriessen/buildbot/buildout.cfg 2010-04-16 14:31:41 UTC (rev 110972)
@@ -1,174 +1,88 @@
[buildout]
parts = master
- projects
+ ${slaves:result-sections}
+ ${projects:result-sections}
+ ${projects-win:result-sections}
poller
-# Projects:
- ztk
- ztk-win-projects
- ztk-win-py2.4
- ztk-win-py2.5
- ztk-win-py2.6
- grok-trunk
- grok-trunk-win-projects
- grok-trunk-win-py2.4
- grok-trunk-win-py2.5
- grok-trunk-win-py2.6
- grok-1.0
- grok-1.0-win-projects
- grok-1.0-win-py2.4
- grok-1.0-win-py2.5
- groktoolkit
- zc.buildout-trunk
- zc.buildout-trunk-py2.4
- zc.buildout-trunk-py2.5
- zc.buildout-trunk-py2.6
- zc.buildout-trunk-win-projects
- zc.buildout-trunk-win-py2.4
- zc.buildout-trunk-win-py2.5
- zc.buildout-trunk-win-py2.6
- zope2-trunk
- grokdependencies-trunk
-# Tools:
- omelette
- development_tools
+
+# ztk
+# ztk-win-projects
+# ztk-win-py2.5
+# ztk-win-py2.6
+# grok-trunk
+# grok-trunk-win-projects
+# grok-trunk-win-py2.5
+# grok-trunk-win-py2.6
+# grok-1.0
+# grok-1.0-win-projects
+# grok-1.0-win-py2.5
+# groktoolkit
+# zope2-trunk
+# grokdependencies-trunk
versions = versions
extensions = buildout.dumppickedversions
+allow-picked-versions = false
-
[versions]
-# Result of buildout.dumppickedversions
-Paste = 1.7.2
+Paste = 1.7.3
PasteDeploy = 1.3.3
PasteScript = 1.7.3
-Twisted = 8.2.0
-buildbot = 0.7.11p3
-collective.buildbot = 0.3.5
-collective.recipe.omelette = 0.9
-eazysvn = 1.11.0
-manuel = 1.0.0
+Twisted = 10.0.0
+buildbot = 0.7.12
+collective.buildbot = 0.4.1
+distribute = 0.6.10
+manuel = 1.0.5
+buildout.dumppickedversions = 0.4
+virtualenv = 1.4.6
+zc.buildout = 1.4.3
zc.recipe.egg = 1.2.2
zc.recipe.macro = 1.3.0
zc.recipe.testrunner = 1.2.0
-zest.releaser = 2.8
zope.exceptions = 3.5.2
-zope.interface = 3.5.2
-zope.testing = 3.8.1
+zope.interface = 3.5.3
+zope.testing = 3.9.4
[config]
host = localhost
-port = 9050
[master]
recipe = collective.buildbot:master
-port = ${config:port}
-wport = 9080
-url = http://${config:host}:${:wport}/
-project-url = http://${config:host}:${:wport}/
-allow-force = true
project-name = Zope Buildbot
+max-builds = 1
+allow-force = true
slaves =
- slave-osx-py2.4 ${slave-osx-py2.4:password}
- slave-osx-py2.5 ${slave-osx-py2.5:password}
- slave-osx-py2.6 ${slave-osx-py2.6:password}
- slave-ubuntu32-py2.4 ${slave-ubuntu32-py2.4:password}
- slave-ubuntu32-py2.5 ${slave-ubuntu32-py2.5:password}
- slave-ubuntu32-py2.6 ${slave-ubuntu32-py2.6:password}
- slave-ubuntu64-py2.4 ${slave-ubuntu64-py2.4:password}
- slave-ubuntu64-py2.5 ${slave-ubuntu64-py2.5:password}
- slave-ubuntu64-py2.6 ${slave-ubuntu64-py2.6:password}
- slave-win-py2.4 ${slave-win-py2.4:password}
- slave-win-py2.5 ${slave-win-py2.5:password}
- slave-win-py2.6 ${slave-win-py2.6:password}
+ slave-osx-py2.5 secret
+ slave-osx-py2.6 secret
+ slave-ubuntu32-py2.5 secret
+ slave-ubuntu32-py2.6 secret
+ slave-ubuntu64-py2.5 secret
+ slave-ubuntu64-py2.6 secret
+ slave-win-py2.5 secret
+ slave-win-py2.6 secret
-# Not using zc.recipe.macro here because we want to override the slave
-# passwords in a deploy.cfg.
-[slave-osx-py2.4]
-recipe = collective.buildbot:slave
+[slaves]
+recipe = zc.recipe.macro
+result-recipe = collective.buildbot:slave
+macro = slave-macro
+targets = slave-ubuntu32-py2.5:slave-python2.5
+ slave-ubuntu32-py2.6
+ slave-ubuntu64-py2.5:slave-python2.5
+ slave-ubuntu64-py2.6
+
+[slave-macro]
host = ${config:host}
-port = ${config:port}
-password = XXX
+port = 8999
+password = secret
+executable = $${:python}
+python = python2.6
+[slave-python2.5]
+python = python2.5
-[slave-osx-py2.5]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-[slave-osx-py2.6]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-
-[slave-ubuntu32-py2.4]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-
-[slave-ubuntu32-py2.5]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-
-[slave-ubuntu32-py2.6]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-
-[slave-ubuntu64-py2.4]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-
-[slave-ubuntu64-py2.5]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-
-[slave-ubuntu64-py2.6]
-recipe = collective.buildbot:slave
-host = ${config:host}
-port = ${config:port}
-password = XXX
-
-
-[slave-win-py2.4]
-password = XXX
-version_minor = 4
-python-path = C:\Python24\python
-bootstrap-path= C:\projects\bootstrap.py
-
-
-[slave-win-py2.5]
-password = XXX
-version_minor = 5
-python-path = C:\Python25\python
-bootstrap-path= C:\projects\bootstrap.py
-
-
-[slave-win-py2.6]
-password = XXX
-version_minor = 6
-python-path = C:\Python26\python
-bootstrap-path= C:\projects\bootstrap.py
-
-
[poller]
recipe = collective.buildbot:poller
repositories = http://svn.zope.org/repos/main
@@ -176,50 +90,58 @@
[project-macro]
-repositories = $${:repositories}
slave-names = $${:slaves}
+vcs = svn
vcs-mode = clobber
+repositories = $${:repos}
mail-host = localhost
email-notification-sender = no-reply at localhost
email-notification-recipients = root at localhost
-cron-scheduler = $${:cron-scheduler}
build-sequence =
- $${:bootstrap-sequence}
- $${:buildout-sequence}
-test-sequence =
- $${:test-sequence}
+ $${:bootstrap}
+ $${:buildout}
+test-sequence = $${:test}
+periodic-scheduler = 1440
# sensible defaults
-bootstrap-sequence =
- curl -o bootstrap.py http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
- python bootstrap.py
-buildout-sequence =
- bin/buildout -vvv
-slaves = slave-osx-py2.4
- slave-osx-py2.5
- slave-osx-py2.6
- slave-ubuntu32-py2.4
- slave-ubuntu32-py2.5
+bootstrap = python ${buildout:directory}/bootstrap.py
+test = bin/test
+buildout = bin/buildout -vvv
+slaves = slave-ubuntu32-py2.5
slave-ubuntu32-py2.6
- slave-ubuntu64-py2.4
slave-ubuntu64-py2.5
slave-ubuntu64-py2.6
[projects]
-# projects are defined by their build and test sequence.
recipe = zc.recipe.macro
result-recipe = collective.buildbot:project
macro = project-macro
-targets = ztk:ztk-parameters
- grok-trunk:grok-trunk-parameters
- groktoolkit:groktoolkit-parameters
- grok-1.0:grok-1.0-parameters
- zope2-trunk:zope2-trunk-parameters
- grokdependencies-trunk:grokdependencies-trunk-parameters
+targets = grokdependencies-trunk:grokdependencies-trunk-parameters
+# ztk:ztk-parameters
+# grok-trunk:grok-trunk-parameters
+# groktoolkit:groktoolkit-parameters
+# grok-1.0:grok-1.0-parameters
+# zope2-trunk:zope2-trunk-parameters
+[projects-win]
+recipe = zc.recipe.macro
+result-recipe = collective.buildbot:project
+macro = project-macro
+slaves = slave-win-py2.5:slave-python2.5
+ slave-win-py2.6
+bootstrap = python C:\Projects\bootstrap.py
+targets = grokdependencies-trunk:grokdependencies-trunk-parameters
+# ztk:ztk-parameters
+# grok-trunk:grok-trunk-parameters
+# groktoolkit:groktoolkit-parameters
+# grok-1.0:grok-1.0-parameters
+# zope2-trunk:zope2-trunk-parameters
+
+
+
[grokdependencies-trunk-parameters]
-repositories =
+repos =
http://svn.zope.org/repos/main/grokcore.annotation/trunk
http://svn.zope.org/repos/main/grokcore.component/trunk
http://svn.zope.org/repos/main/grokcore.component/branches/1.x
@@ -234,116 +156,86 @@
http://svn.zope.org/repos/main/grokui.admin/trunk
http://svn.zope.org/repos/main/martian/trunk
http://svn.zope.org/repos/main/martian/branches/0.11
- http://svn.zope.org/repos/main/grokproject/trunk
+#http://svn.zope.org/repos/main/grokproject/trunk
http://svn.zope.org/repos/main/grokui.introspector/trunk
-cron-scheduler = 2 5 * * *
-test-sequence = bin/test
-slaves = slave-ubuntu64-py2.4
- slave-ubuntu64-py2.5
- slave-ubuntu64-py2.6
[groktoolkit-parameters]
-repositories =
+repos =
http://svn.zope.org/repos/main/groktoolkit/trunk
-cron-scheduler = 5 5 * * *
-test-sequence = bin/test-grok
+test = bin/test-grok
[ztk-parameters]
-repositories =
+repos =
http://svn.zope.org/repos/main/zopetoolkit/trunk
-cron-scheduler = 5 5 * * *
-test-sequence = bin/test-ztk
+test = bin/test-ztk
[zope2-trunk-parameters]
-repositories =
+repos =
http://svn.zope.org/repos/main/Zope/trunk
-cron-scheduler = 3 10 * * *
-bootstrap-sequence = python bootstrap.py
-buildout-sequence = bin/buildout -vvv
-test-sequence = bin/alltests
+bootstrap = python bootstrap.py
+test = bin/alltests
[ztk-win-macro]
-repositories =
- ${ztk-parameters:repositories}
+<= project-macro
+repos =
+ ${ztk-parameters:repos}
slave-names = slave-win-py2.$${:version_minor}
-sss-mode = ${project-macro:vcs-mode}
-mail-host = ${project-macro:mail-host}
-email-notification-sender = ${project-macro:email-notification-sender}
-email-notification-recipients = ${project-macro:email-notification-recipients}
-cron-scheduler = 1 1 * * *
-build-sequence =
- $${:python-path} $${:bootstrap-path}
- bin\buildout -vvv
-test-sequence =
- bin\test-ztk
+bootstrap = $${:python-path} $${:bootstrap-path}
+test = bin\test-ztk
[ztk-win-projects]
recipe = zc.recipe.macro
result-recipe = collective.buildbot:project
macro = ztk-win-macro
-targets = ztk-win-py2.4:slave-win-py2.4
- ztk-win-py2.5:slave-win-py2.5
+targets = ztk-win-py2.5:slave-win-py2.5
ztk-win-py2.6:slave-win-py2.6
[grok-trunk-parameters]
-repositories =
+repos =
http://svn.zope.org/repos/main/grok/trunk
-cron-scheduler = 2 2 * * *
-test-sequence =
- bin/compattest
-slaves = slave-osx-py2.4
- slave-osx-py2.5
+test = bin/compattest
+slaves = slave-osx-py2.5
slave-osx-py2.6
- slave-ubuntu32-py2.4
slave-ubuntu32-py2.5
slave-ubuntu32-py2.6
- slave-ubuntu64-py2.4
slave-ubuntu64-py2.5
slave-ubuntu64-py2.6
[grok-trunk-win-macro]
repositories =
- ${grok-trunk-parameters:repositories}
+ ${grok-trunk-parameters:repos}
slave-names = slave-win-py2.$${:version_minor}
vcs-mode = ${project-macro:vcs-mode}
mail-host = ${project-macro:mail-host}
email-notification-sender = ${project-macro:email-notification-sender}
email-notification-recipients = ${project-macro:email-notification-recipients}
-cron-scheduler = 3 3 * * *
build-sequence =
$${:python-path} bootstrap\bootstrap.py
bin\buildout -vvv
-test-sequence =
- bin\compattest
+test = bin\compattest
[grok-trunk-win-projects]
recipe = zc.recipe.macro
result-recipe = collective.buildbot:project
macro = grok-trunk-win-macro
-targets = grok-trunk-win-py2.4:slave-win-py2.4
- grok-trunk-win-py2.5:slave-win-py2.5
+targets = grok-trunk-win-py2.5:slave-win-py2.5
grok-trunk-win-py2.6:slave-win-py2.6
[grok-1.0-parameters]
repositories =
http://svn.zope.org/repos/main/grok/branches/1.0
-cron-scheduler = 2 2 * * *
-test-sequence =
- bin/test-grokcore
-slaves = slave-osx-py2.4
- slave-osx-py2.5
- slave-ubuntu32-py2.4
+test = bin/test-grokcore
+slaves = slave-osx-py2.5
slave-ubuntu32-py2.5
- slave-ubuntu64-py2.4
slave-ubuntu64-py2.5
@@ -355,52 +247,20 @@
mail-host = ${project-macro:mail-host}
email-notification-sender = ${project-macro:email-notification-sender}
email-notification-recipients = ${project-macro:email-notification-recipients}
-cron-scheduler = 3 3 * * *
build-sequence =
$${:python-path} bootstrap\bootstrap.py
bin\buildout -vvv
-test-sequence =
- bin\test-grokcore
+test = bin\test-grokcore
[grok-1.0-win-projects]
recipe = zc.recipe.macro
result-recipe = collective.buildbot:project
macro = grok-1.0-win-macro
-targets = grok-1.0-win-py2.4:slave-win-py2.4
- grok-1.0-win-py2.5:slave-win-py2.5
+targets = grok-1.0-win-py2.5:slave-win-py2.5
-[zc.buildout-trunk-macro]
-repositories =
- http://svn.zope.org/repos/main/zc.buildout/trunk
-slave-names = slave-osx-py2.$${:version_minor}
- slave-ubuntu32-py2.$${:version_minor}
- slave-ubuntu64-py2.$${:version_minor}
-vcs-mode = ${project-macro:vcs-mode}
-mail-host = ${project-macro:mail-host}
-email-notification-sender = ${project-macro:email-notification-sender}
-email-notification-recipients = ${project-macro:email-notification-recipients}
-cron-scheduler = 2 2 * * *
-build-sequence =
- python dev.py
-test-sequence =
- bin/test
-
-[zc.buildout-trunk]
-recipe = zc.recipe.macro
-result-recipe = collective.buildbot:project
-macro = zc.buildout-trunk-macro
-targets = zc.buildout-trunk-py2.4:python2.4
- zc.buildout-trunk-py2.5:python2.5
- zc.buildout-trunk-py2.6:python2.6
-
-
-[python2.4]
-version_minor = 4
-
-
[python2.5]
version_minor = 5
@@ -408,37 +268,3 @@
[python2.6]
version_minor = 6
-
-[zc.buildout-trunk-win-macro]
-repositories =
- ${zc.buildout-trunk-macro:repositories}
-slave-names = slave-win-py2.$${:version_minor}
-vcs-mode = ${project-macro:vcs-mode}
-mail-host = ${project-macro:mail-host}
-email-notification-sender = ${project-macro:email-notification-sender}
-email-notification-recipients = ${project-macro:email-notification-recipients}
-cron-scheduler = 3 3 * * *
-build-sequence =
- $${:python-path} dev.py
-test-sequence =
- bin\test
-
-
-[zc.buildout-trunk-win-projects]
-recipe = zc.recipe.macro
-result-recipe = collective.buildbot:project
-macro = zc.buildout-trunk-win-macro
-targets = zc.buildout-trunk-win-py2.4:slave-win-py2.4
- zc.buildout-trunk-win-py2.5:slave-win-py2.5
- zc.buildout-trunk-win-py2.6:slave-win-py2.6
-
-
-[omelette]
-recipe = collective.recipe.omelette
-eggs = collective.buildbot
-
-
-[development_tools]
-recipe = zc.recipe.egg
-eggs = zest.releaser
- eazysvn
More information about the checkins
mailing list