schedulers: docs: pass properties to branch schedulers

Unlike the ForceScheduler, the AnyBranchScheduler does not take a list
of parameters but a simple dict. Add a repos_dict_for_scheduler() helper
that returns a dict containing the {repo,branch}_<repo> keys mapping to
the values in config.py. These are used in the factory definition of the
docs build (see the Git steps).

Also add the missing "yab-helper" to the bitbake-docs-changed scheduler.

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Antonin Godard 2025-01-10 16:30:06 +01:00 committed by Richard Purdie
parent afa838d962
commit 8f6709cf0f

View File

@ -322,6 +322,19 @@ def repos_for_builder(buildername):
parameters = parameters + [util.NestedParameter(name='', label=repo, fields=inputs, columns=2)] parameters = parameters + [util.NestedParameter(name='', label=repo, fields=inputs, columns=2)]
return parameters return parameters
def repos_dict_for_scheduler(buildername):
"""
Returns a dict of repository properties for a scheduler.
"""
props = {}
repos = config.buildertorepos.get(buildername)
if repos is None:
repos = config.buildertorepos["default"]
for repo in repos:
props["repo_{}".format(repo)] = config.repos[repo][0]
props["branch_{}".format(repo)] = config.repos[repo][1]
return props
def parent_default_props(buildername, branchname=None): def parent_default_props(buildername, branchname=None):
props = {} props = {}
props["swat_monitor"] = True props["swat_monitor"] = True
@ -593,6 +606,7 @@ schedulers.append(sched.AnyBranchScheduler(name="yocto-docs-changed",
change_filter=util.ChangeFilter(project=["yocto-docs"], branch=[None, "master", "master-next", "styhead", "scarthgap", "mickledore", "langdale", "kirkstone", "honister", "hardknott", "gatesgarth", "dunfell", "transition"]), change_filter=util.ChangeFilter(project=["yocto-docs"], branch=[None, "master", "master-next", "styhead", "scarthgap", "mickledore", "langdale", "kirkstone", "honister", "hardknott", "gatesgarth", "dunfell", "transition"]),
codebases = ['yab-helper', 'yocto-docs', 'bitbake'], codebases = ['yab-helper', 'yocto-docs', 'bitbake'],
treeStableTimer=60, treeStableTimer=60,
properties=repos_dict_for_scheduler("docs"),
builderNames=["docs"])) builderNames=["docs"]))
# If bitbake's sphinx docs change, trigger a build # If bitbake's sphinx docs change, trigger a build
@ -603,10 +617,11 @@ def isbitbakeDocFile(change):
return False return False
schedulers.append(sched.AnyBranchScheduler(name="bitbake-docs-changed", schedulers.append(sched.AnyBranchScheduler(name="bitbake-docs-changed",
change_filter=util.ChangeFilter(project=["bitbake"], branch=["master", "2.10", "2.8", "2.0"]), change_filter=util.ChangeFilter(project=["bitbake"], branch=["master", "2.10", "2.8", "2.0"]),
codebases = ['', 'yocto-docs', 'bitbake'], codebases = ['yab-helper', 'yocto-docs', 'bitbake'],
fileIsImportant=isbitbakeDocFile, fileIsImportant=isbitbakeDocFile,
onlyImportant=True, onlyImportant=True,
treeStableTimer=60, treeStableTimer=60,
properties=repos_dict_for_scheduler("docs"),
builderNames=["docs"])) builderNames=["docs"]))
# Run meta-webosose for kirkstone once a week on weekends (2am on Friday) # Run meta-webosose for kirkstone once a week on weekends (2am on Friday)