diff --git a/buildbot/osuosl/master/config/builders.py b/buildbot/osuosl/master/config/builders.py --- a/buildbot/osuosl/master/config/builders.py +++ b/buildbot/osuosl/master/config/builders.py @@ -1774,3 +1774,25 @@ ] + +release_branch_builder_templates = [ + 'llvm-clang-x86_64-expensive-checks-debian' + 'openmp-clang-x86_64-linux-debian', + 'libcxx-libcxxabi-x86_64-linux-debian' +] + +def getReleaseBuilders(): + release_builders = [] + for builder in all: + if builder['name'] not in release_branch_builder_templates: + continue + + release_builder = builder.copy + release_builder['name'] += '-release' + release_builder['builddir'] += '-release' + release_builder['tags'].append('release') + + release_builders.append(release_builder) + return release_builders + +all.extend(getReleaseBuilders()) diff --git a/buildbot/osuosl/master/config/schedulers.py b/buildbot/osuosl/master/config/schedulers.py --- a/buildbot/osuosl/master/config/schedulers.py +++ b/buildbot/osuosl/master/config/schedulers.py @@ -21,6 +21,8 @@ # of schedulers, which covers all actually used combinations of dependencies. def getSingleBranchSchedulers( builders, + filter_branch = 'main', + filter_branch_re = '^' + filter_branch + '$' explicitly_set_schedulers = None, **kwargs): """ @@ -45,7 +47,6 @@ if getattr(builder.factory, 'depends_on_projects', None) ] - filter_branch = 'main' treeStableTimer = kwargs.get('treeStableTimer', None) automatic_schedulers = [] @@ -78,7 +79,7 @@ project_fn= \ lambda c, projects_of_interest=frozenset(projects): isProjectOfInterest(c, projects_of_interest), - branch=filter_branch) + branch_re=filter_branch_re) ) ) diff --git a/buildbot/osuosl/master/config/status.py b/buildbot/osuosl/master/config/status.py --- a/buildbot/osuosl/master/config/status.py +++ b/buildbot/osuosl/master/config/status.py @@ -20,7 +20,7 @@ "llvm-clang-x86_64-win-fast", "clang-x86_64-debian-fast", "llvm-clang-x86_64-expensive-checks-debian", - ]), + ] + [b['name'] for b in config.builders.getReleaseBuilders()]) reporters.IRC( useColors = False, diff --git a/buildbot/osuosl/master/master.cfg b/buildbot/osuosl/master/master.cfg --- a/buildbot/osuosl/master/master.cfg +++ b/buildbot/osuosl/master/master.cfg @@ -66,10 +66,15 @@ util.BuilderConfig(**b) for b in config.builders.all ] +release_builders = [util.BuilderConfig(**b) for b in config.builders.getReleaseBuilders()] +c['builders'].extend(release_builders) + ####### SCHEDULERS c['schedulers'] = config.schedulers.getSingleBranchSchedulers( - c['builders']) + builders) +c['schedulers'].extend(config.schedulers.getSingleBranchSchedulers( + release_builders, 'release', '^release/[0-9]+\.x$') c['schedulers'].extend(config.schedulers.getForceSchedulers( c['builders']))