diff options
author | Dan Jacques <dnj@chromium.org> | 2015-04-14 13:15:51 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-05-19 01:26:13 +0000 |
commit | 84b132c7c8895e3b469ea84c2843a5de2a011ccc (patch) | |
tree | 889ce5a9e29d87f7b146cd206d65acd1d334678f /cbuildbot/generate_chromeos_config.py | |
parent | 9ce393ed340e1955f9e6442dbccaf043cc81a72b (diff) | |
download | chromite-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.py | 54 |
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(): |