buildbot 0:b0140808ff9c: Initial commit
commits at adium.im
commits at adium.im
Fri Sep 9 00:19:47 UTC 2011
details: http://hg.adium.im/buildbot/rev/b0140808ff9c
revision: 0:b0140808ff9c
branch: (none)
author: Colin Barrett <colin at springsandstruts.com>
date: Wed Sep 07 09:29:35 2011 -0700
Initial commit
Subject: buildbot 1:55f5df4a3a2a: master.cfg should work without secrets.py now
details: http://hg.adium.im/buildbot/rev/55f5df4a3a2a
revision: 1:55f5df4a3a2a
branch: (none)
author: Colin Barrett <colin at springsandstruts.com>
date: Wed Sep 07 10:41:58 2011 -0700
master.cfg should work without secrets.py now
diffs (191 lines):
diff -r 000000000000 -r 55f5df4a3a2a .hgignore
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore Wed Sep 07 10:41:58 2011 -0700
@@ -0,0 +1,5 @@
+syntax: glob
+
+secrets.py
+*.pyc
+.DS_Store
\ No newline at end of file
diff -r 000000000000 -r 55f5df4a3a2a master.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/master.cfg Wed Sep 07 10:41:58 2011 -0700
@@ -0,0 +1,177 @@
+# Buildbot Master Config
+# !!! Do not modify, unless you know what you are doing !!!
+
+# Import secrets
+try:
+ from secrets import secrets
+except ImportError:
+ # This only allows secrets to contain strings. No nesting. Sigh.
+ class Empty:
+ def __getitem__(self, key):
+ return ""
+ secrets = Empty()
+
+c = BuildmasterConfig = {}
+
+# Site info
+
+c['projectName'] = "Adium"
+c['projectURL'] = "http://adium.im/"
+c['buildbotURL'] = "http://buildbot.adium.im/"
+
+# Slaves
+"""
+Slave names should follow the following convention:
+ For machines hosted at the colo and officially supported:
+ "adium.<machinename>"
+
+ For non-offical slaves owned/hosted by folks
+ "<username>.<machinename>"
+"""
+
+from buildbot.buildslave import BuildSlave
+
+c['slaves'] = [
+ BuildSlave("adium.muscovy", secrets['muscovyPassword']),
+# BuildSlave("adium.smew", secrets['smewPassword'])
+]
+
+c['slavePortnum'] = 9989
+
+# Nightly Branches
+# ex.: ("repo", ["branch1", "branch2", "branch3"])
+
+nightlybranches = [
+ ("adium", ["default"]),
+ ("adium-1.4", ["default"])
+]
+
+# Schedulers
+
+from buildbot.changes.pb import PBChangeSource
+from buildbot.schedulers.basic import SingleBranchScheduler
+from buildbot.schedulers.timed import Nightly
+from buildbot.changes.filter import ChangeFilter
+
+c['change_source'] = PBChangeSource()
+
+# Instant
+c['schedulers'] =[
+ SingleBranchScheduler("adium",
+ change_filter = ChangeFilter(project = 'Adium'),
+ treeStableTimer = 5*60,
+ builderNames = ["adium"]),
+ SingleBranchScheduler("adium-1.4",
+ change_filter = ChangeFilter(project = 'Adium 1.4'),
+ treeStableTimer = 5*60,
+ builderNames = ["adium-1.4"])
+]
+
+# Nightly
+for repo, branches in nightlybranches:
+ for branch in branches:
+ c['schedulers'].append(Nightly("nightly-%s-%s" % (repo, branch),
+ change_filter = ChangeFilter(repository = [repo]),
+ branch = branch,
+ hour = 2, minute = 0,
+ onlyIfChanged = True,
+ builderNames = ["nightly-%s-%s" % (repo, branch)]))
+
+# Factories
+
+from buildbot.process import factory
+from buildbot.steps import source, shell
+import socket
+
+# This is necessary because hg was failing to do the lookup right on smew.
+adium_hg_ip = socket.gethostbyname('hg.adium.im')
+
+adiumf = factory.BuildFactory()
+adiumf.addStep(source.Mercurial(repourl = "http://%s/adium" % adium_hg_ip,
+ branchType = 'inrepo'))
+adiumf.addStep(shell.ShellCommand, command = ["make", "clean"])
+adiumf.addStep(shell.Compile(command = ["make", "adium"], want_stderr = True))
+adiumf.addStep(shell.Test(command = ["make", "test"], want_stderr = True))
+
+branchf = factory.BuildFactory()
+branchf.addStep(source.Mercurial(repourl = "http://%s/adium-1.4" % adium_hg_ip,
+ branchType = 'inrepo'))
+branchf.addStep(shell.ShellCommand, command = ["make", "clean"])
+branchf.addStep(shell.Compile(command = ["make", "adium"], want_stderr = True))
+branchf.addStep(shell.Test(command = ["make", "test"], want_stderr = True))
+
+nightlybranchfs = []
+
+for repo, branches in nightlybranches:
+ for branch in branches:
+ nightlybranchf = factory.BuildFactory()
+ nightlybranchf.addStep(source.Mercurial(repourl = "http://%s/%s" % (adium_hg_ip, repo),
+ defaultBranch = branch,
+ branchType = 'inrepo'))
+ nightlybranchf.addStep(shell.Compile(command = ["make", "-C", "Release", "nightly"],
+ want_stderr = True,
+ env = {'NIGHTLY': 'TRUE',
+ 'OFFICIAL_BUILD': 'TRUE',
+ 'NIGHTLY_REPO': repo,
+ 'NIGHTLY_BRANCH': branch}))
+ nightlybranchf.addStep(shell.ShellCommand(command = ['Release/upload-nightly.sh'],
+ want_stderr = True,
+ env = {'NIGHTLY_HOST': '67.23.11.87',
+ 'NIGHTLY_USER': 'adiumnightly',
+ 'NIGHTLY_REPO': repo,
+ 'NIGHTLY_BRANCH': branch},
+ description = "uploading",
+ descriptionDone = "upload"))
+ nightlybranchfs.append((repo, branch, nightlybranchf))
+
+# Builders
+
+c['builders'] = [
+ {'name': "adium",
+ 'slavenames': ["adium.muscovy"],
+ 'factory': adiumf
+ },
+ {'name': "adium-1.4",
+ 'slavenames': ["adium.muscovy"],
+ 'factory': branchf
+ }
+]
+
+for repo, branch, nightlybranchf in nightlybranchfs:
+ name = "nightly-%s-%s" % (repo, branch)
+
+ c['builders'].append({ 'name': name,
+ 'slavenames': ["adium.muscovy"],
+ 'factory': nightlybranchf});
+
+# I can't think of a case where having a builddir named something other
+# than the name of the builder is useful.
+c['builders'] = [x.update(builddir = x['name']) or x for x in c['builders']]
+
+# Reports / Staus / Debug
+
+from buildbot.status import html, words, mail
+
+c['status'] = [
+ html.WebStatus(http_port = 8080),
+ words.IRC(host = "irc.freenode.net",
+ nick = "Lumberjack",
+ channels = ["#adium-devl"],
+ password = secrets["ircBotPassword"],
+ notify_events = {'started' : 1,
+ 'finished' : 1,
+ 'success' : 1,
+ 'failure' : 1,
+ 'exception' : 1},
+ allowForce = True)
+
+# mail.MailNotifier(fromaddr = "buildbot at adium.im",
+# sendToInterestedUsers = False,
+# extraRecipients = ["devel at adium.im"],
+# mode = "problem"),
+# mail.MailNotifier(fromaddr = "buildbot at adiumx.com",
+# sendToInterestedUsers = False,
+# extraRecipients = ['adium-bustage at adiumx.com'])
+]
+
+c['debugPassword'] = secrets["debugPassword"]
More information about the commits
mailing list