# HG changeset patch # User Mark Wielaard # Date 1298242354 -3600 # Node ID 2b632652ec94ac4e3d3519ba260a1ca08b9162a9 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. 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 + +# 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", + 'slavenames': ["natty-armv7l"], + 'builddir': "icedtea6-natty-armv7l-quick-shark", + 'factory': f3ans } +icedtea6_builder_quick_ia32_jaunty_shark = { + 'name': "icedtea6-jaunty-ia32-quick-shark", + 'slavenames': ["jaunty-ia32"], + 'builddir': "icedtea6-jaunty-ia32-quick-shark", + 'factory': f3js } +icedtea6_builder_quick_ia32_jaunty_cacao = { + 'name': "icedtea6-jaunty-ia32-quick-cacao", + 'slavenames': ["jaunty-ia32"], + 'builddir': "icedtea6-jaunty-ia32-quick-cacao", + 'factory': f3jc } +icedtea6_builder_quick_ia32_jaunty_zero = { + 'name': "icedtea6-jaunty-ia32-quick-zero", + 'slavenames': ["jaunty-ia32"], + 'builddir': "icedtea6-jaunty-ia32-quick-zero", + 'factory': f3jz } +icedtea6_builder_quick_armv5tel_squeeze = { + 'name': "icedtea6-squeeze-armv5tel-quick", + 'slavenames': ["squeeze-armv5tel"], + 'builddir': "icedtea6-squeeze-armv5tel-quick", + 'factory': f3a5 } +icedtea6_builder_quick_armv5tel_squeeze_shark = { + 'name': "icedtea6-squeeze-armv5tel-quick-shark", + 'slavenames': ["squeeze-armv5tel"], + 'builddir': "icedtea6-squeeze-armv5tel-quick-shark", + 'factory': f3a5s } +icedtea6_builder_quick_armv5tel_squeeze_cacao = { + 'name': "icedtea6-squeeze-armv5tel-quick-cacao", + 'slavenames': ["squeeze-armv5tel"], + 'builddir': "icedtea6-squeeze-armv5tel-quick-cacao", + 'factory': f3a5c } + +icedtea7_builder_quick = { 'name': "icedtea7-squeeze-x86_64-quick", + 'slavenames': ["squeeze-x86_64"], + 'builddir': "icedtea7-quick", + 'factory': f3 } +icedtea7_builder_quick_arm_squeeze = { 'name': "icedtea7-squeeze-armv7l-quick", + 'slavenames': ["squeeze-armv7l"], + 'builddir': "icedtea7-squeeze-armv7l-quick", + 'factory': f3as } +icedtea7_builder_quick_arm_natty = { 'name': "icedtea7-natty-armv7l-quick", + 'slavenames': ["natty-armv7l"], + 'builddir': "icedtea7-natty-armv7l-quick", + 'factory': f3an } + +f4 = factory.BuildFactory() +f4.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f4.addStep(ShellCommand(command=["./autogen.sh"], + workdir="src", + description="autogen")) +f4.addStep(ShellCommand(command=["rm", "-rf", "build"], + workdir=".", + description="clean build dir")) +f4.addStep(Configure(command=["../src/configure", + "--enable-bootstrap", + "--enable-optimizations", + "--enable-docs", + "--enable-nss", + "--with-additional-vms=cacao,shark", + "--with-parallel-jobs=4", + "--with-llvm-config=llvm-config-2.7"], + workdir="build")) +f4.addStep(Compile(workdir="build")) +f4.addStep(JTRegCheck(command=["make", "check-hotspot"], + description="check-hotspot", + workdir="build")) +f4.addStep(JTRegCheck(command=["make", "check-langtools"], + description="check-langtools", + workdir="build")) +f4.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build")) + +icedtea6_builder_full = { 'name': "icedtea6-squeeze-x86_64-full", + 'slavenames': ["squeeze-x86_64"], + 'builddir': "icedtea6-full", + 'factory': f4 } +icedtea7_builder_full = { 'name': "icedtea7-squeeze-x86_64-full", + 'slavenames': ["squeeze-x86_64"], + 'builddir': "icedtea7-full", + 'factory': f4 } + +c['builders'] = [icedtea6_builder_quick, + icedtea6_builder_quick_arm_squeeze, + icedtea6_builder_quick_arm_natty, + icedtea6_builder_quick_arm_natty_cacao, + icedtea6_builder_quick_arm_natty_shark, + icedtea6_builder_quick_ia32_jaunty_shark, + icedtea6_builder_quick_ia32_jaunty_cacao, + icedtea6_builder_quick_ia32_jaunty_zero, + icedtea6_builder_quick_armv5tel_squeeze, + icedtea6_builder_quick_armv5tel_squeeze_cacao, + icedtea6_builder_quick_armv5tel_squeeze_shark, + icedtea7_builder_quick, + icedtea7_builder_quick_arm_squeeze, + icedtea7_builder_quick_arm_natty, + icedtea6_builder_full, + icedtea7_builder_full, + icedtea_web_builder_x86_64, + icedtea_web_builder_squeeze_armv7l, + icedtea_web_builder_natty_armv7l, + testrepo_builder_x86_64, + testrepo_builder_squeeze_armv7l, + testrepo_builder_natty_armv7l, + testrepo_builder_jaunty_ia32, + testrepo_builder_squeeze_armv5tel ] + +####### STATUS TARGETS + +c['status'] = [] + +import urllib +def create_revlink(rev, repo): + if not repo or not rev: + return None + rev = urllib.quote(rev) + repo = urllib.quote(repo) + return 'http://icedtea.classpath.org/hg/%s/rev/%s' % (repo, rev) + +def create_repolink(repo): + if not repo: + return None + return 'http://icedtea.classpath.org/hg/%s' % (repo) + +# Catch things like PR icedtea/42, PR16, PR 16 or bug #11, +# and turn them into icedtea bugzilla URLs. +# TODO: Catch other conventions used (see icedtea NEWS file). +cc_re_tuple = (r'(PR [a-z]+/|PR ?|#)(\d+)', + r'http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=\2') + +# Note http_port is local only, will be proxied by httpd running on builder. +from buildbot.status import html +c['status'].append(html.WebStatus(http_port=8010, + allowForce=False, + order_console_by_time=True, + revlink=create_revlink, + repositories=create_repolink, + changecommentlink=cc_re_tuple)) + +# We need a interested users filter (to turn non-email addresses of +# committers into email addresses) and a good template before spamming +# everybody. For now only use testresults mailing list. +from buildbot.status import mail +c['status'].append(mail.MailNotifier + (fromaddr="buildbot@wildebeest.org", + extraRecipients=["testresults@icedtea.classpath.org"], + sendToInterestedUsers=False)) + +# Very noisy in channel. +from buildbot.status import words +c['status'].append(words.IRC(host="irc.oftc.net", + nick="cpitbb", + password=getpw("cpitbb"), + channels=["#openjdk"], + allowForce=False, + notify_events={ + 'started': 0, + 'finished': 0, + 'success': 0, + 'failure': 0, + 'exception': 0, + 'successToFailure': 1, + 'successToException': 1, + 'failureToSuccess': 1, + 'failureToException': 0, + 'exceptionToSuccess': 1, + 'exceptionToFailure': 0 + })) + +# Allows command line and gui listening. +# Currently port isn't accessible, so don't enable. +# from buildbot.status import client +# c['status'].append(client.PBListener(9988)) + +####### PROJECT IDENTITY + +c['projectName'] = "IcedTea" +c['projectURL'] = "http://icedtea.classpath.org/" +c['buildbotURL'] = "http://builder.classpath.org/icedtea/buildbot/"