mirror of
git://git.yoctoproject.org/yocto-autobuilder2.git
synced 2025-07-19 12:39:02 +02:00
config/builders/schedulers: Split nightly into quick and full targets
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
2174bcfba5
commit
b7a5d4bd7a
205
builders.py
205
builders.py
|
@ -188,7 +188,7 @@ def create_builder_factory():
|
|||
|
||||
# regular builders
|
||||
f = create_builder_factory()
|
||||
for builder in config.triggered_builders:
|
||||
for builder in config.subbuilders:
|
||||
workers = config.builder_to_workers.get(builder, None)
|
||||
if not workers:
|
||||
workers = config.builder_to_workers['default']
|
||||
|
@ -196,115 +196,114 @@ for builder in config.triggered_builders:
|
|||
workernames=workers,
|
||||
factory=f, env=extra_env))
|
||||
|
||||
factory = util.BuildFactory()
|
||||
# NOTE: Assumes that yocto-autobuilder repo has been cloned to home
|
||||
# directory of the user running buildbot.
|
||||
clob = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir")
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[clob, util.Interpolate("%(prop:builddir)s/")],
|
||||
haltOnFailure=True,
|
||||
name="Clobber build dir"))
|
||||
# check out the source
|
||||
factory.addStep(steps.Git(
|
||||
repourl='git://git.yoctoproject.org/yocto-autobuilder-helper',
|
||||
workdir=util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper"),
|
||||
mode='incremental',
|
||||
haltOnFailure=True,
|
||||
name='Fetch yocto-autobuilder-helper'))
|
||||
factory.addStep(WriteLayerInfo(name='Write main layerinfo.json', haltOnFailure=True))
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/prepare-shared-repos"),
|
||||
util.Interpolate("%(prop:builddir)s/layerinfo.json"),
|
||||
util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir)),
|
||||
"-p", get_publish_dest],
|
||||
haltOnFailure=True,
|
||||
name="Prepare shared repositories"))
|
||||
factory.addStep(steps.SetProperty(
|
||||
property="sharedrepolocation",
|
||||
value=util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir))
|
||||
))
|
||||
def create_parent_builder_factory(waitname):
|
||||
factory = util.BuildFactory()
|
||||
# NOTE: Assumes that yocto-autobuilder repo has been cloned to home
|
||||
# directory of the user running buildbot.
|
||||
clob = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir")
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[clob, util.Interpolate("%(prop:builddir)s/")],
|
||||
haltOnFailure=True,
|
||||
name="Clobber build dir"))
|
||||
# check out the source
|
||||
factory.addStep(steps.Git(
|
||||
repourl='git://git.yoctoproject.org/yocto-autobuilder-helper',
|
||||
workdir=util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper"),
|
||||
mode='incremental',
|
||||
haltOnFailure=True,
|
||||
name='Fetch yocto-autobuilder-helper'))
|
||||
factory.addStep(WriteLayerInfo(name='Write main layerinfo.json', haltOnFailure=True))
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/prepare-shared-repos"),
|
||||
util.Interpolate("%(prop:builddir)s/layerinfo.json"),
|
||||
util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir)),
|
||||
"-p", get_publish_dest],
|
||||
haltOnFailure=True,
|
||||
name="Prepare shared repositories"))
|
||||
factory.addStep(steps.SetProperty(
|
||||
property="sharedrepolocation",
|
||||
value=util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir))
|
||||
))
|
||||
|
||||
# shared-repo-unpack
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/shared-repo-unpack"),
|
||||
util.Interpolate("%(prop:builddir)s/layerinfo.json"),
|
||||
util.Interpolate("%(prop:builddir)s/build"),
|
||||
util.Property("buildername"),
|
||||
"-c", util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir)),
|
||||
"-p", util.Property("is_release")],
|
||||
haltOnFailure=True,
|
||||
name="Unpack shared repositories"))
|
||||
# shared-repo-unpack
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/shared-repo-unpack"),
|
||||
util.Interpolate("%(prop:builddir)s/layerinfo.json"),
|
||||
util.Interpolate("%(prop:builddir)s/build"),
|
||||
util.Property("buildername"),
|
||||
"-c", util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir)),
|
||||
"-p", util.Property("is_release")],
|
||||
haltOnFailure=True,
|
||||
name="Unpack shared repositories"))
|
||||
|
||||
factory.addStep(steps.SetPropertyFromCommand(command=util.Interpolate("cd %(prop:sharedrepolocation)s/poky; git rev-parse HEAD"),
|
||||
property="yp_build_revision",
|
||||
haltOnFailure=True,
|
||||
name='Set build revision'))
|
||||
factory.addStep(steps.SetPropertyFromCommand(command=util.Interpolate("cd %(prop:sharedrepolocation)s/poky; git rev-parse HEAD"),
|
||||
property="yp_build_revision",
|
||||
haltOnFailure=True,
|
||||
name='Set build revision'))
|
||||
|
||||
factory.addStep(steps.SetPropertyFromCommand(command=util.Interpolate("cd %(prop:sharedrepolocation)s/poky; git rev-parse --abbrev-ref HEAD"),
|
||||
property="yp_build_branch",
|
||||
haltOnFailure=True,
|
||||
name='Set build branch'))
|
||||
factory.addStep(steps.SetPropertyFromCommand(command=util.Interpolate("cd %(prop:sharedrepolocation)s/poky; git rev-parse --abbrev-ref HEAD"),
|
||||
property="yp_build_branch",
|
||||
haltOnFailure=True,
|
||||
name='Set build branch'))
|
||||
|
||||
# run-config
|
||||
factory.addStep(RunConfigLogObserver(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/run-config"),
|
||||
util.Property("buildername"),
|
||||
util.Interpolate("%(prop:builddir)s/build/build"),
|
||||
util.Interpolate("%(prop:branch_poky)s"),
|
||||
util.Interpolate("%(prop:repo_poky)s"),
|
||||
"-s", get_sstate_release_number,
|
||||
"-p", get_publish_dest,
|
||||
"-u", util.URLForBuild,
|
||||
"-r", get_publish_resultdir,
|
||||
"-q"],
|
||||
name="run-config",
|
||||
logfiles=get_buildlogs(maxsteps),
|
||||
lazylogfiles=True,
|
||||
maxsteps=maxsteps,
|
||||
timeout=16200)) # default of 1200s/20min is too short, use 4.5hrs
|
||||
# run-config
|
||||
factory.addStep(RunConfigLogObserver(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/run-config"),
|
||||
util.Property("buildername"),
|
||||
util.Interpolate("%(prop:builddir)s/build/build"),
|
||||
util.Interpolate("%(prop:branch_poky)s"),
|
||||
util.Interpolate("%(prop:repo_poky)s"),
|
||||
"-s", get_sstate_release_number,
|
||||
"-p", get_publish_dest,
|
||||
"-u", util.URLForBuild,
|
||||
"-r", get_publish_resultdir,
|
||||
"-q"],
|
||||
name="run-config",
|
||||
logfiles=get_buildlogs(maxsteps),
|
||||
lazylogfiles=True,
|
||||
maxsteps=maxsteps,
|
||||
timeout=16200)) # default of 1200s/20min is too short, use 4.5hrs
|
||||
|
||||
# trigger the buildsets contained in the nightly set
|
||||
def get_props_set():
|
||||
set_props = {
|
||||
"sharedrepolocation": util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir)),
|
||||
"is_release": util.Property("is_release"),
|
||||
"buildappsrcrev": "",
|
||||
"deploy_artefacts": util.Property("deploy_artefacts"),
|
||||
"publish_destination": util.Property("publish_destination"),
|
||||
"yocto_number": util.Property("yocto_number"),
|
||||
"milestone_number": util.Property("milestone_number"),
|
||||
"rc_number": util.Property("rc_number")
|
||||
}
|
||||
# trigger the buildsets contained in the nightly set
|
||||
def get_props_set():
|
||||
set_props = {
|
||||
"sharedrepolocation": util.Interpolate("{}/%(prop:buildername)s-%(prop:buildnumber)s".format(config.sharedrepodir)),
|
||||
"is_release": util.Property("is_release"),
|
||||
"buildappsrcrev": "",
|
||||
"deploy_artefacts": util.Property("deploy_artefacts"),
|
||||
"publish_destination": util.Property("publish_destination"),
|
||||
"yocto_number": util.Property("yocto_number"),
|
||||
"milestone_number": util.Property("milestone_number"),
|
||||
"rc_number": util.Property("rc_number")
|
||||
}
|
||||
|
||||
for repo in config.repos:
|
||||
set_props["branch_%s" % repo] = util.Property("branch_%s" % repo)
|
||||
set_props["commit_%s" % repo] = util.Property("commit_%s" % repo)
|
||||
set_props["repo_%s" % repo] = util.Property("repo_%s" % repo)
|
||||
set_props["yocto_number"] = util.Property("yocto_number")
|
||||
set_props["milestone_number"] = util.Property("milestone_number")
|
||||
set_props["rc_number"] = util.Property("rc_number")
|
||||
for repo in config.repos:
|
||||
set_props["branch_%s" % repo] = util.Property("branch_%s" % repo)
|
||||
set_props["commit_%s" % repo] = util.Property("commit_%s" % repo)
|
||||
set_props["repo_%s" % repo] = util.Property("repo_%s" % repo)
|
||||
set_props["yocto_number"] = util.Property("yocto_number")
|
||||
set_props["milestone_number"] = util.Property("milestone_number")
|
||||
set_props["rc_number"] = util.Property("rc_number")
|
||||
|
||||
return set_props
|
||||
return set_props
|
||||
|
||||
factory.addStep(steps.Trigger(schedulerNames=['wait'],
|
||||
waitForFinish=True,
|
||||
set_properties=get_props_set()))
|
||||
factory.addStep(steps.Trigger(schedulerNames=[waitname],
|
||||
waitForFinish=True,
|
||||
set_properties=get_props_set()))
|
||||
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/send-qa-email"),
|
||||
util.Property("send_email"),
|
||||
util.Interpolate("%(prop:builddir)s/layerinfo.json"),
|
||||
util.Interpolate("%(prop:sharedrepolocation)s"),
|
||||
"-p", get_publish_dest,
|
||||
"-r", get_publish_name
|
||||
],
|
||||
name="Send QA Email"))
|
||||
factory.addStep(steps.ShellCommand(
|
||||
command=[
|
||||
util.Interpolate("%(prop:builddir)s/yocto-autobuilder-helper/scripts/send-qa-email"),
|
||||
util.Property("send_email"),
|
||||
util.Interpolate("%(prop:builddir)s/layerinfo.json"),
|
||||
util.Interpolate("%(prop:sharedrepolocation)s"),
|
||||
"-p", get_publish_dest,
|
||||
"-r", get_publish_name
|
||||
],
|
||||
name="Send QA Email"))
|
||||
|
||||
builders.append(
|
||||
util.BuilderConfig(name="nightly",
|
||||
workernames=config.workers,
|
||||
factory=factory, env=extra_env))
|
||||
builders.append(util.BuilderConfig(name="quick", workernames=config.workers, factory=create_parent_builder_factory("wait-quick"), env=extra_env))
|
||||
builders.append(util.BuilderConfig(name="full", workernames=config.workers, factory=create_parent_builder_factory("wait-full"), env=extra_env))
|
||||
|
|
25
config.py
25
config.py
|
@ -3,7 +3,10 @@
|
|||
buildertorepos = {
|
||||
"eclipse-plugin-neon": ["eclipse-poky-neon"],
|
||||
"eclipse-plugin-oxygen": ["eclipse-poky-oxygen"],
|
||||
"nightly": ["poky", "meta-intel", "oecore", "bitbake",
|
||||
"quick": ["poky", "meta-intel", "oecore", "bitbake",
|
||||
"eclipse-poky-neon", "eclipse-poky-oxygen", "meta-qt4",
|
||||
"meta-qt3", "meta-mingw", "meta-gplv2"],
|
||||
"full": ["poky", "meta-intel", "oecore", "bitbake",
|
||||
"eclipse-poky-neon", "eclipse-poky-oxygen", "meta-qt4",
|
||||
"meta-qt3", "meta-mingw", "meta-gplv2"],
|
||||
"non-gpl3": ["poky", "meta-gplv2"],
|
||||
|
@ -35,16 +38,16 @@ repos = {
|
|||
"meta-gplv2": ["git://git.yoctoproject.org/meta-gplv2", "master"]
|
||||
}
|
||||
|
||||
trigger_builders_wait = [
|
||||
trigger_builders_wait_quick = [
|
||||
"qemuarm", "qemuarm-lsb", "qemuarm64", "qemuarm-oecore",
|
||||
"qemumips", "qemumips-lsb", "qemumips64",
|
||||
"qemumips", "qemumips64",
|
||||
"multilib",
|
||||
"qemuppc", "qemuppc-lsb",
|
||||
"qemuppc",
|
||||
"qemux86", "qemux86-lsb",
|
||||
"qemux86-64", "qemux86-64-lsb",
|
||||
"qemux86-64-x32", "qemux86-world", "qemux86-world-lsb",
|
||||
"edgerouter", "edgerouter-lsb",
|
||||
"mpc8315e-rdb", "mpc8315e-rdb-lsb",
|
||||
"qemux86-64-x32", "qemux86-world",
|
||||
"edgerouter",
|
||||
"mpc8315e-rdb",
|
||||
"genericx86", "genericx86-lsb",
|
||||
"genericx86-64", "genericx86-64-lsb",
|
||||
"beaglebone", "beaglebone-lsb",
|
||||
|
@ -57,8 +60,12 @@ trigger_builders_wait = [
|
|||
"check-layer"
|
||||
]
|
||||
|
||||
triggered_builders = trigger_builders_wait
|
||||
builders = ["nightly"] + triggered_builders
|
||||
trigger_builders_wait_full = [
|
||||
"qemumips-lsb", "edgerouter-lsb", "mpc8315e-rdb-lsb", "qemuppc-lsb", "qemux86-world-lsb"
|
||||
]
|
||||
|
||||
subbuilders = trigger_builders_wait_quick + trigger_builders_wait_full
|
||||
builders = ["quick", "full"]
|
||||
|
||||
# ## Cluster configuration
|
||||
# Publishing settings
|
||||
|
|
|
@ -68,7 +68,7 @@ def props_for_builder(builder):
|
|||
return props
|
||||
|
||||
|
||||
for builder in config.triggered_builders:
|
||||
for builder in config.subbuilders:
|
||||
schedulers.append(sched.ForceScheduler(
|
||||
name=builder,
|
||||
builderNames=[builder],
|
||||
|
@ -81,14 +81,18 @@ for builder in config.triggered_builders:
|
|||
buttonName="Force Build"))
|
||||
|
||||
# nightly builder triggers various other builders
|
||||
wait = sched.Triggerable(name="wait",
|
||||
builderNames=config.trigger_builders_wait)
|
||||
schedulers.append(wait)
|
||||
wait_quick = sched.Triggerable(name="wait-quick",
|
||||
builderNames=config.trigger_builders_wait_quick)
|
||||
schedulers.append(wait_quick)
|
||||
wait_full = sched.Triggerable(name="wait-full",
|
||||
builderNames=config.trigger_builders_wait_quick + config.trigger_builders_wait_full)
|
||||
schedulers.append(wait_full)
|
||||
|
||||
schedulers.append(sched.ForceScheduler(
|
||||
name="nightly",
|
||||
builderNames=["nightly"],
|
||||
buttonName="Start Nightly Build",
|
||||
def parent_scheduler(target):
|
||||
return sched.ForceScheduler(
|
||||
name=target,
|
||||
builderNames=[target],
|
||||
buttonName="Start " + target + " Build",
|
||||
codebases = [util.CodebaseParameter(codebase='', label="yocto-autobuilder-helper:", project=None)],
|
||||
reason=util.StringParameter(
|
||||
name="reason",
|
||||
|
@ -236,4 +240,8 @@ schedulers.append(sched.ForceScheduler(
|
|||
name="deploy_artefacts",
|
||||
label="Do we want to save build output? ",
|
||||
default=False)
|
||||
]+repos_for_builder("nightly")))
|
||||
]+repos_for_builder(target))
|
||||
|
||||
schedulers.append(parent_scheduler("quick"))
|
||||
schedulers.append(parent_scheduler("full"))
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user