BUILDBOT: Add "other" build set.

This is intended to be used to test extensive changes i.e. Pull Requests
which could impact across ports and should be tested before merging.
This commit is contained in:
D G Turner
2014-04-02 02:18:36 +01:00
parent 2169b062b3
commit 85b26649dd
+136 -2
View File
@@ -32,15 +32,26 @@ scumm_tools_branch_master_desc = "tools-master"
scumm_tools_package_dst_master = "/var/www/snapshots/tools-master"
# ScummVM "Other" Repository - Used for testing Extensive Changes, Pull Requests etc.
scumm_other_changeurl = "https://github.com/scummvm/scummvm"
scumm_other_giturl = "%s.git" % scumm_tools_changeurl
scumm_other_branch = "master"
scumm_other_branch_desc = "master"
scumm_other_package_dst = "/var/www/snapshots/other"
# toggle nightly builds
scumm_build_nightly_master = True
scumm_build_nightly_stable = True
scumm_tools_build_nightly_master = True
scumm_other_build_nightly = True
# toggle verbose builds
scumm_verbose_build_master = True
scumm_verbose_build_stable = True
scumm_tools_verbose_build_master = True
scumm_other_verbose_build = True
# Files to package for scummvm stable snapshots (common to all ports).
scumm_package_stable = [
@@ -70,6 +81,9 @@ scumm_package_master = copy.deepcopy(scumm_package_stable)
#scumm_package_master.extend( [
#] )
# Files to package for scummvm other snapshots (common to all ports).
scumm_package_other = copy.deepcopy(scumm_package_master)
# Files to package for scummvm-tools master snapshots (common to all ports).
scumm_tools_package_master = [
"COPYING",
@@ -1098,6 +1112,8 @@ scumm_platforms_master["amigaos4"] = p
scumm_platforms_stable["amigaos4"] = p
scumm_desktop_platforms.append("amigaos4")
scumm_platforms_other = copy.deepcopy(scumm_platforms_master)
#######
####### buildbot setup
#######
@@ -1138,6 +1154,11 @@ s_tools_master = SingleBranchScheduler(name = "fetch-tools-master",
treeStableTimer = 5,
builderNames = [ "fetch-tools-master" ])
s_other = SingleBranchScheduler(name = "fetch-other",
change_filter=ChangeFilter(repository = scumm_other_changeurl, branch = scumm_other_branch),
treeStableTimer = 5,
builderNames = [ "fetch-other" ])
# The building schedulers, starting the associated builders
builders_master = []
@@ -1159,13 +1180,20 @@ for i in scumm_desktop_platforms:
s_build_tools_master = Triggerable(name = "tools-master", builderNames = builders_tools_master)
builders_other = []
for i in scumm_platforms_other.keys():
builders_other.append("other-%s" % i)
s_build_other = Triggerable(name = "other", builderNames = builders_other)
c["schedulers"] = [
s_master,
s_stable,
s_tools_master,
s_build_master,
s_build_stable,
s_build_tools_master
s_build_tools_master,
s_build_other
]
# The nightly schedulers.
@@ -1193,6 +1221,14 @@ if scumm_tools_build_nightly_master:
minute = 2,
onlyIfChanged = True))
if scumm_other_build_nightly:
c["schedulers"].append(Nightly(name = "nightly_other",
branch = scumm_other_branch,
builderNames = [ "nightly-other" ],
hour = 4,
minute = 3,
onlyIfChanged = True))
####### BUILDERS
from buildbot.process import factory
@@ -1270,6 +1306,26 @@ c["builders"].append( {
"locks": [ lock_src.access("exclusive") ]
})
f = factory.BuildFactory()
f.useProgress = False
f.addStep(Git(mode = "update",
workdir = "src",
repourl = scumm_other_giturl,
branch = scumm_other_branch))
f.addStep(Trigger(schedulerNames = [ "other" ],
copy_properties = [ 'got_revision' ],
updateSourceStamp = True,
waitForFinish = True))
c["builders"].append( {
"name": "fetch-other",
"slavename": "localslave",
"builddir": "src-other",
"factory": f,
"category": "fetch",
"locks": [ lock_src.access("exclusive") ]
})
# Nightly builders
if scumm_build_nightly_master:
@@ -1323,6 +1379,23 @@ if scumm_tools_build_nightly_master:
"locks": [ lock_src.access("exclusive") ]
})
if scumm_build_nightly_master:
f = factory.BuildFactory()
f.addStep(scumm.Clean(prefix = "other"))
f.addStep(Trigger(schedulerNames = [ "other" ],
updateSourceStamp = True,
waitForFinish = True,
set_properties = { "package": True }))
c["builders"].append( {
"name": "nightly-other",
"slavename": "localslave",
"builddir": "nightly-other",
"factory": f,
"category": "nightly",
"locks": [ lock_src.access("exclusive") ]
})
# Dynamic generated builders based on the platforms defined at the top of this file
configure_path = "../../src-master/src/configure"
@@ -1497,6 +1570,67 @@ for name, config in scumm_platforms_master.items():
"category": "tools-master"
})
configure_path = "../../src-other/src/configure"
for name, config in scumm_platforms_other.items():
f = factory.BuildFactory()
f.useProgress = False
f.addStep(scumm.Prepare(configure = configure_path))
platform_build_verbosity = ""
if scumm_verbose_build_other:
platform_build_verbosity = "--enable-verbose-build"
# 20130706 Tests currently break if event recorder is enabled, so disable
# for the native (tests) build. Remove when this is fixed.
platform_disable_eventrecorder = ""
if name in scumm_native_buildname:
platform_disable_eventrecorder = "--disable-eventrecorder"
f.addStep(scumm.Configure(command = [
configure_path,
"--enable-all-engines",
"--disable-engine=testbed",
platform_build_verbosity,
platform_disable_eventrecorder
] + config["configureargs"],
env = config["env"]))
f.addStep(Compile(command = [
"make",
"-j5"
],
env = config["env"]))
if name in scumm_native_buildname:
f.addStep(Test(env = config["env"]))
platform_disttarget = ""
if config.has_key("disttarget"):
platform_disttarget = config["disttarget"]
else:
if config.has_key("strip"):
f.addStep(scumm.Strip(command = config["strip"]))
if name not in scumm_buildonly_platforms:
f.addStep(scumm.Package(disttarget = platform_disttarget,
srcpath = "../../src-other/src/",
dstpath = scumm_other_package_dst,
package = scumm_package_other,
buildname = name + "-%s" % scumm_other_branch_desc,
platform_package = config["package"],
archive_format = config["archive_format"],
env = config["env"]))
c["builders"].append( {
"name": "other-%s" % name,
"slavename": "localslave",
"builddir": "other-%s" % name,
"factory": f,
"locks": [ lock_bot.access('counting') ],
"category": "other"
})
####### STATUS TARGETS
c["status"] = []
@@ -1528,7 +1662,7 @@ c["status"].append(
irc = scumm.IRC("irc.freenode.org", "ScummBot",
channel = "#scummvm",
password= scummsecret.pwd_nickserv,
categories = [ "master", "stable" ],
categories = [ "master", "stable", "tools-master", "other" ],
stableTimer = 15 * 60)
c["status"].append(irc)