summaryrefslogtreecommitdiff
path: root/cbuildbot/generate_chromeos_config.py
diff options
context:
space:
mode:
authorDan Jacques <dnj@chromium.org>2015-04-14 13:15:51 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-05-19 01:26:13 +0000
commit84b132c7c8895e3b469ea84c2843a5de2a011ccc (patch)
tree889ce5a9e29d87f7b146cd206d65acd1d334678f /cbuildbot/generate_chromeos_config.py
parent9ce393ed340e1955f9e6442dbccaf043cc81a72b (diff)
downloadchromite-84b132c7c8895e3b469ea84c2843a5de2a011ccc.tar.gz
cbuildbot_config: Backport release updates to master.
Port of non-release-specific parts of: https://chromium-review.googlesource.com/#/c/264929 https://chromium-review.googlesource.com/#/c/266093 - The 'internal_pfq_branch'-derived configs mark themselves as present on the release waterfall. - Allow explicitly-specified waterfall presense (i.e., don't override with default). - Fix bug with non-canary masters in 'sync_stages' (from release branch). - Fixed some formatting errors. BUG=chromium:456203 TEST=`./cbuildbot/run_tests` Change-Id: I1bbd849b7b3875601f86e08a714057112c8d002f Reviewed-on: https://chromium-review.googlesource.com/265727 Trybot-Ready: Daniel Jacques <dnj@chromium.org> Reviewed-by: Daniel Jacques <dnj@chromium.org> Commit-Queue: Daniel Jacques <dnj@chromium.org> Tested-by: Daniel Jacques <dnj@chromium.org>
Diffstat (limited to 'cbuildbot/generate_chromeos_config.py')
-rw-r--r--cbuildbot/generate_chromeos_config.py54
1 files changed, 40 insertions, 14 deletions
diff --git a/cbuildbot/generate_chromeos_config.py b/cbuildbot/generate_chromeos_config.py
index 7dcb10c08..f4e6a5a46 100644
--- a/cbuildbot/generate_chromeos_config.py
+++ b/cbuildbot/generate_chromeos_config.py
@@ -420,6 +420,10 @@ _settings = dict(
)
+# Set to 'True' if this is a release branch.
+IS_RELEASE_BRANCH = False
+
+
_CONFIG = config_lib.Config(defaults=_settings)
def GetConfig():
@@ -504,19 +508,28 @@ def GetDefaultWaterfall(build_config):
return None
if build_config['branch']:
return None
-
b_type = build_config['build_type']
- if (
- config_lib.IsPFQType(b_type) or
- config_lib.IsCQType(b_type) or
- config_lib.IsCanaryType(b_type) or
- b_type in (
- constants.PRE_CQ_LAUNCHER_TYPE,
- )):
- if build_config['internal']:
- return constants.WATERFALL_INTERNAL
+
+ if config_lib.IsCanaryType(b_type):
+ # If this is a canary build, it may fall on different waterfalls:
+ # - If we're building for a release branch, it belongs on a release
+ # waterfall.
+ # - Otherwise, it belongs on the internal waterfall.
+ if IS_RELEASE_BRANCH:
+ return constants.WATERFALL_RELEASE
else:
- return constants.WATERFALL_EXTERNAL
+ return constants.WATERFALL_INTERNAL
+ elif config_lib.IsCQType(b_type):
+ # A Paladin can appear on the public or internal waterfall depending on its
+ # 'internal' status.
+ return (constants.WATERFALL_INTERNAL if build_config['internal'] else
+ constants.WATERFALL_EXTERNAL)
+ elif config_lib.IsPFQType(b_type) or b_type == constants.PRE_CQ_LAUNCHER_TYPE:
+ # These builder types belong on the internal waterfall.
+ return constants.WATERFALL_INTERNAL
+ else:
+ # No default active waterfall.
+ return None
# pylint: disable=W0102
@@ -1680,8 +1693,12 @@ internal_pfq = internal.derive(official_chrome, pfq,
# Because branch directories may be shared amongst builders on multiple
# branches, they must delete the chroot every time they run.
# They also potentially need to build [new] Chrome.
-internal_pfq_branch = internal_pfq.derive(branch=True, chroot_replace=True,
- trybot_list=False, sync_chrome=True)
+internal_pfq_branch = internal_pfq.derive(
+ branch=True,
+ chroot_replace=True,
+ trybot_list=False,
+ sync_chrome=True,
+ active_waterfall=constants.WATERFALL_RELEASE)
internal_paladin = internal.derive(official_chrome, paladin,
manifest=constants.OFFICIAL_MANIFEST,
@@ -2976,6 +2993,14 @@ def GetDisplayPosition(config_name,
return len(type_order)
+# On release branches, x86-mario is the release master.
+#
+# TODO(dnj): This should go away once the boardless release master is complete
+# (crbug.com/458675)
+if IS_RELEASE_BRANCH:
+ _CONFIG['x86-mario-release']['master'] = True
+
+
# This is a list of configs that should be included on the main waterfall, but
# aren't included by default (see IsDefaultMainWaterfall). This loosely
# corresponds to the set of experimental or self-standing configs.
@@ -3059,7 +3084,8 @@ _waterfall_config_map = {
def _SetupWaterfalls():
for name, c in _CONFIG.iteritems():
- c['active_waterfall'] = GetDefaultWaterfall(c)
+ if not c.get('active_waterfall'):
+ c['active_waterfall'] = GetDefaultWaterfall(c)
# Apply manual configs.
for waterfall, names in _waterfall_config_map.iteritems():