[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