/hg/buildbot: Initial checkin of icedtea buildbot config for bui...
mjw at icedtea.classpath.org
mjw at icedtea.classpath.org
Sun Feb 20 14:54:41 PST 2011
changeset 2b632652ec94 in /hg/buildbot
details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=2b632652ec94
author: Mark Wielaard <mark at klomp.org>
date: Sun Feb 20 23:52:34 2011 +0100
Initial checkin of icedtea buildbot config for
builder.classpath.org.
Bit of a copy/paste configuration setup. Needs some
refactoring/cleanup. But it is a start.
diffstat:
1 file changed, 677 insertions(+)
icedtea/master.cfg | 677 ++++++++++++++++++++++++++++++++++++++++++++++++++++
diffs (truncated from 681 to 500 lines):
diff -r 000000000000 -r 2b632652ec94 icedtea/master.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/icedtea/master.cfg Sun Feb 20 23:52:34 2011 +0100
@@ -0,0 +1,677 @@
+# -*- python -*-
+# ex: set syntax=python:
+
+# Python master.cfg program for IcedTea buildbot.
+# Copyright (C) 2010, Mark J. Wielaard <mark at klomp.org>
+
+# This file is part of the IcedTea buildbot, and is free software.
+# You can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL); either version 2, or (at your option)
+# any later version.
+
+# Passwords are stored in the buildbot-icedtea.config as simple raw
+# properties file.
+import os
+from ConfigParser import RawConfigParser
+passwords = RawConfigParser()
+passwords.read([os.path.expanduser('~/buildbot-icedtea.config')])
+
+def getpw(name):
+ return passwords.get("passwords", name)
+
+c = BuildmasterConfig = {}
+
+####### BUILDSLAVES
+
+from buildbot.buildslave import BuildSlave
+
+c['slaves'] = [BuildSlave("squeeze-x86_64",
+ getpw("squeeze-x86_64"),
+ max_builds=3),
+ BuildSlave("squeeze-armv7l",
+ getpw("squeeze-armv7l"),
+ max_builds=1),
+ BuildSlave("natty-armv7l",
+ getpw("natty-armv7l"),
+ max_builds=2),
+ BuildSlave("jaunty-ia32",
+ getpw("jaunty-ia32"),
+ max_builds=3),
+ BuildSlave("squeeze-armv5tel",
+ getpw("squeeze-armv5tel"),
+ max_builds=1)]
+
+c['slavePortnum'] = 9989
+
+####### CHANGESOURCES
+
+# The mercurial repository will send changes to PBChangeSource port
+# (same as slavePortnum). Must authenticate with user and password.
+from buildbot.changes.pb import PBChangeSource
+c['change_source'] = PBChangeSource(user="itbbcs", passwd=getpw("itbbcs"))
+
+####### SCHEDULERS
+
+from buildbot.scheduler import Scheduler
+c['schedulers'] = []
+
+# "Quick" schedulers for icedtea6 and 7 (branch called "icedtea")
+# Schedules a quick build (no jdk-check, no documentation)
+# after waiting 5 minutes for any more changes. Should finish in less
+# than an hour.
+c['schedulers'].append(Scheduler(name="icedtea6-quick", branch="icedtea6",
+ treeStableTimer=5*60,
+ builderNames=["icedtea6-squeeze-x86_64-quick",
+ "icedtea6-squeeze-armv7l-quick",
+ "icedtea6-natty-armv7l-quick",
+ "icedtea6-natty-armv7l-quick-cacao",
+ "icedtea6-natty-armv7l-quick-shark",
+ "icedtea6-jaunty-ia32-quick-zero",
+ "icedtea6-jaunty-ia32-quick-cacao",
+ "icedtea6-jaunty-ia32-quick-shark",
+ "icedtea6-squeeze-armv5tel-quick",
+ "icedtea6-squeeze-armv5tel-quick-cacao",
+ "icedtea6-squeeze-armv5tel-quick-shark"]
+ ))
+
+c['schedulers'].append(Scheduler(name="icedtea7-quick", branch="icedtea",
+ treeStableTimer=5*60,
+ builderNames=["icedtea7-squeeze-x86_64-quick",
+ "icedtea7-squeeze-armv7l-quick",
+ "icedtea7-natty-armv7l-quick"]
+ ))
+
+# "Normal" schedulers for icedtea-web and testrepo.
+# Schedules a full build of either branch after waiting 60 seconds
+# for any more changes.
+c['schedulers'].append(Scheduler(name="icedtea-web", branch="icedtea-web",
+ treeStableTimer=60,
+ builderNames=["icedtea-web-squeeze-x86_64",
+ "icedtea-web-squeeze-armv7l",
+ "icedtea-web-natty-armv7l"]))
+
+c['schedulers'].append(Scheduler(name="testrepo", branch="testrepo",
+ treeStableTimer=60,
+ builderNames=["testrepo-squeeze-x86_64",
+ "testrepo-squeeze-armv7l",
+ "testrepo-natty-armv7l",
+ "testrepo-jaunty-ia32",
+ "testrepo-squeeze-armv5tel"]))
+
+# Full scheduler for icedtea6 or icedtea (icedtea7) branches.
+# Triggers every 8 hours if there were changes. Schedules a full build
+# that includes documentation and jdk-check. Takes multiple hours.
+# The trigger times are shifted 4 hours to minimize overlap.
+from buildbot.schedulers.timed import Nightly
+c['schedulers'].append(Nightly(name="icedtea6-full", branch="icedtea6",
+ onlyIfChanged=True,
+ hour=range(0, 24, 8),
+ minute=38,
+ builderNames=["icedtea6-squeeze-x86_64-full"]))
+c['schedulers'].append(Nightly(name="icedtea7-full", branch="icedtea",
+ onlyIfChanged=True,
+ hour=range(4, 24, 8),
+ minute=8,
+ builderNames=["icedtea7-squeeze-x86_64-full"]))
+
+####### BUILDERS
+
+# Note this is the backup mercurial repo server.
+# Currently the backup server is the one pinging the PBChangeSource,
+# so let the build slaves also pull from it, to make sure they are
+# in sync.
+hgrepo = "http://icedtea.wildebeest.org/hg/"
+
+from buildbot.process import factory
+from buildbot.steps.source import Mercurial
+from buildbot.steps.shell import ShellCommand
+from buildbot.steps.shell import Configure
+from buildbot.steps.shell import Compile
+from buildbot.steps.shell import Test
+
+from buildbot.process.buildstep import LogLineObserver
+from buildbot.status.builder import SUCCESS, WARNINGS, FAILURE, EXCEPTION
+
+class PassFailErrorCounter(LogLineObserver):
+ def __init__(self, **kwargs):
+ LogLineObserver.__init__(self, **kwargs) # always upcall!
+ self.numPassed = 0
+ self.numFailed = 0
+ self.numError = 0
+ def outLineReceived(self, line):
+ if line.startswith("Passed: "):
+ self.numPassed += 1
+ self.step.setProgress('pass', self.numPassed)
+ elif line.startswith("FAILED: "):
+ self.numFailed += 1
+ self.step.setProgress('fail', self.numFailed)
+ elif line.startswith("Error: "):
+ self.numError += 1
+ self.step.setProgress('error', self.numError)
+
+class JTRegCheck(Test):
+ name = "jtregcheck"
+ command = [name]
+
+ def __init__(self, **kwargs):
+ Test.__init__(self, **kwargs) # always upcall!
+ self.counter = PassFailErrorCounter()
+ self.addLogObserver('stdio', self.counter)
+ self.progressMetrics += ('tests', 'pass', 'fail', 'error',)
+
+ def getText(self, cmd, results):
+ text = Test.getText(self, cmd, results)
+ if self.counter.numPassed > 0:
+ text.append("pass: " + str(self.counter.numPassed))
+ if self.counter.numFailed > 0:
+ text.append("fail: " + str(self.counter.numFailed))
+ if self.counter.numError > 0:
+ text.append("error: " + str(self.counter.numError))
+ return text
+
+ def getText2(self, cmd, results):
+ return getText(self, cmd, results)
+
+ def evaluateCommand(self, cmd):
+ if self.counter.numFailed > 0 or self.counter.numError > 0:
+ return WARNINGS
+ else:
+ return SUCCESS
+
+# icedtea-web
+f1 = factory.BuildFactory()
+f1.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f1.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen"))
+f1.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir"))
+#f1.addStep(ShellCommand(command=["mkdir", "build"], description="create build dir"))
+f1.addStep(Configure(command=["../src/configure"], workdir="build"))
+f1.addStep(Compile(command=["make", "-j4"], workdir="build"))
+f1.addStep(Test(command=["make", "check"], workdir="build"))
+icedtea_web_builder_x86_64 = { 'name': "icedtea-web-squeeze-x86_64",
+ 'slavenames': ["squeeze-x86_64"],
+ 'builddir': "icedtea-web",
+ 'factory': f1 }
+
+f1arm = factory.BuildFactory()
+f1arm.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f1arm.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen"))
+f1arm.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir"))
+f1arm.addStep(Configure(command=["../src/configure", "--disable-docs"],
+ workdir="build"))
+f1arm.addStep(Compile(command=["make", "-j2"], workdir="build"))
+f1arm.addStep(Test(command=["make", "check"], workdir="build"))
+
+icedtea_web_builder_squeeze_armv7l = { 'name': "icedtea-web-squeeze-armv7l",
+ 'slavenames': ["squeeze-armv7l"],
+ 'builddir': "icedtea-web-squeeze-armv7l",
+ 'factory': f1arm }
+icedtea_web_builder_natty_armv7l = { 'name': "icedtea-web-natty-armv7l",
+ 'slavenames': ["natty-armv7l"],
+ 'builddir': "icedtea-web-natty-armv7l",
+ 'factory': f1arm }
+
+f2 = factory.BuildFactory()
+f2.addStep(Mercurial(baseURL=hgrepo, mode="clobber"))
+f2.addStep(Compile())
+f2.addStep(Test(command=["make", "check"]))
+testrepo_builder_x86_64 = { 'name': "testrepo-squeeze-x86_64",
+ 'slavenames': ["squeeze-x86_64"],
+ 'builddir': "testrepo",
+ 'factory': f2 }
+testrepo_builder_squeeze_armv7l = { 'name': "testrepo-squeeze-armv7l",
+ 'slavenames': ["squeeze-armv7l"],
+ 'builddir': "testrepo_squeeze_armv7l",
+ 'factory': f2 }
+testrepo_builder_natty_armv7l = { 'name': "testrepo-natty-armv7l",
+ 'slavenames': ["natty-armv7l"],
+ 'builddir': "testrepo_natty_armv7l",
+ 'factory': f2 }
+testrepo_builder_jaunty_ia32 = { 'name': "testrepo-jaunty-ia32",
+ 'slavenames': ["jaunty-ia32"],
+ 'builddir': "testrepo_jaunty_ia32",
+ 'factory': f2 }
+testrepo_builder_squeeze_armv5tel = { 'name': "testrepo-squeeze-armv5tel",
+ 'slavenames': ["squeeze-armv5tel"],
+ 'builddir': "testrepo_squeeze_armv5tel",
+ 'factory': f2 }
+
+f3 = factory.BuildFactory()
+f3.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--disable-optimizations",
+ "--disable-docs",
+ "--with-additional-vms=cacao,shark",
+ "--with-parallel-jobs=4",
+ "--with-llvm-config=llvm-config-2.7"],
+ workdir="build"))
+f3.addStep(Compile(workdir="build"))
+f3.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build"))
+
+f3as = factory.BuildFactory()
+f3as.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3as.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3as.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3as.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--disable-docs"],
+ workdir="build"))
+f3as.addStep(Compile(workdir="build"))
+f3as.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3as.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build", timeout=2400))
+
+f3an = factory.BuildFactory()
+f3an.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3an.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3an.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3an.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=2",
+ "--disable-docs"],
+ workdir="build"))
+f3an.addStep(Compile(workdir="build"))
+f3an.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3an.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build", timeout=2400))
+
+f3anc = factory.BuildFactory()
+f3anc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3anc.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3anc.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3anc.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=2",
+ "--disable-docs",
+ "--enable-cacao"],
+ workdir="build"))
+f3anc.addStep(Compile(workdir="build"))
+f3anc.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3anc.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build", timeout=2400))
+
+f3ans = factory.BuildFactory()
+f3ans.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3ans.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3ans.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3ans.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=2",
+ "--disable-docs",
+ "--enable-shark"],
+ workdir="build"))
+f3ans.addStep(Compile(workdir="build"))
+f3ans.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3ans.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build", timeout=2400))
+
+f3jz = factory.BuildFactory()
+f3jz.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3jz.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3jz.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3jz.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=5",
+ "--disable-docs",
+ "--enable-zero"],
+ workdir="build"))
+f3jz.addStep(Compile(workdir="build"))
+f3jz.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3jz.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build", timeout=2400))
+
+f3js = factory.BuildFactory()
+f3js.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3js.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3js.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3js.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=5",
+ "--disable-docs",
+ "--enable-shark"],
+ workdir="build"))
+f3js.addStep(Compile(workdir="build"))
+f3js.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3js.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build", timeout=2400))
+
+f3jc = factory.BuildFactory()
+f3jc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3jc.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3jc.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3jc.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=5",
+ "--disable-docs",
+ "--enable-cacao"],
+ workdir="build"))
+f3jc.addStep(Compile(workdir="build"))
+f3jc.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3jc.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build", timeout=2400))
+
+f3a5 = factory.BuildFactory()
+f3a5.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3a5.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3a5.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3a5.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=1",
+ "--disable-docs"],
+ workdir="build"))
+f3a5.addStep(Compile(workdir="build"))
+f3a5.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3a5.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build"))
+
+f3a5c = factory.BuildFactory()
+f3a5c.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3a5c.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3a5c.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3a5c.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=1",
+ "--disable-docs",
+ "--enable-cacao"],
+ workdir="build"))
+f3a5c.addStep(Compile(workdir="build"))
+f3a5c.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3a5c.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build"))
+
+f3a5s = factory.BuildFactory()
+f3a5s.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update"))
+f3a5s.addStep(ShellCommand(command=["./autogen.sh"],
+ workdir="src",
+ description="autogen"))
+f3a5s.addStep(ShellCommand(command=["rm", "-rf", "build"],
+ workdir=".",
+ description="clean build dir"))
+f3a5s.addStep(Configure(command=["../src/configure",
+ "--disable-bootstrap",
+ "--with-parallel-jobs=1",
+ "--disable-docs",
+ "--enable-shark"],
+ workdir="build"))
+f3a5s.addStep(Compile(workdir="build"))
+f3a5s.addStep(JTRegCheck(command=["make", "check-hotspot"],
+ description="check-hotspot",
+ workdir="build"))
+f3a5s.addStep(JTRegCheck(command=["make", "check-langtools"],
+ description="check-langtools",
+ workdir="build"))
+
+icedtea6_builder_quick = { 'name': "icedtea6-squeeze-x86_64-quick",
+ 'slavenames': ["squeeze-x86_64"],
+ 'builddir': "icedtea6-quick",
+ 'factory': f3 }
+icedtea6_builder_quick_arm_squeeze = { 'name': "icedtea6-squeeze-armv7l-quick",
+ 'slavenames': ["squeeze-armv7l"],
+ 'builddir': "icedtea6-squeeze-armv7l-quick",
+ 'factory': f3as }
+icedtea6_builder_quick_arm_natty = { 'name': "icedtea6-natty-armv7l-quick",
+ 'slavenames': ["natty-armv7l"],
+ 'builddir': "icedtea6-natty-armv7l-quick",
+ 'factory': f3an }
+icedtea6_builder_quick_arm_natty_cacao = {
+ 'name': "icedtea6-natty-armv7l-quick-cacao",
+ 'slavenames': ["natty-armv7l"],
+ 'builddir': "icedtea6-natty-armv7l-quick-cacao",
+ 'factory': f3anc }
+icedtea6_builder_quick_arm_natty_shark = {
+ 'name': "icedtea6-natty-armv7l-quick-shark",
More information about the distro-pkg-dev
mailing list