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