Bug 1490094: [release] Configure staging release resources via dedicated parameter; r=bhearsum

Currently, release resources such as balrog, bouncer and CDN urls are
configured by project. However, all production branches use one value and all
other branches use another. Rather than duplicate lists of projects, add a
helper to identify production release branches.

Differential Revision: https://phabricator.services.mozilla.com/D5583

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Tom Prince 2018-09-11 21:09:28 +00:00
parent 36100c0619
commit f8cc2f6b8f
35 changed files with 162 additions and 216 deletions

View File

@ -34,8 +34,6 @@ job-template:
# act only when the release is greenlit.
shipping-phase: ship
bucket-scope:
by-project:
mozilla-central: 'project:releng:beetmover:bucket:maven-production'
mozilla-beta: 'project:releng:beetmover:bucket:maven-production'
mozilla-release: 'project:releng:beetmover:bucket:maven-production'
default: 'project:releng:beetmover:bucket:maven-staging'
by-release-level:
production: 'project:releng:beetmover:bucket:maven-production'
staging: 'project:releng:beetmover:bucket:maven-staging'

View File

@ -21,11 +21,9 @@ jobs:
shipping-phase: ship
shipping-product: fennec
worker-type:
by-project:
mozilla-central: scriptworker-prov-v1/pushapk-v1
mozilla-beta: scriptworker-prov-v1/pushapk-v1
mozilla-release: scriptworker-prov-v1/pushapk-v1
default: scriptworker-prov-v1/dep-pushapk
by-release-level:
production: scriptworker-prov-v1/pushapk-v1
staging: scriptworker-prov-v1/dep-pushapk
worker:
upstream-artifacts: # see transforms
google-play-track:
@ -42,11 +40,9 @@ jobs:
default: 'invalid'
implementation: push-apk
commit:
by-project:
mozilla-central: true
mozilla-beta: true
mozilla-release: true
default: false
by-release-level:
production: true
staging: false
rollout-percentage:
by-project:
# XXX Please make sure to change PUSH_APK_GOOGLE_PLAY_TRACT to

View File

@ -16,6 +16,14 @@ job-defaults:
implementation: balrog
balrog-action: submit-toplevel
require-mirrors: true
archive-domain:
by-release-level:
production: archive.mozilla.org
staging: ftp.stage.mozaws.net
download-domain:
by-release-level:
production: download.mozilla.org
staging: bouncer-bouncer-releng.stage.mozaws.net
jobs:
firefox:
@ -24,18 +32,6 @@ jobs:
shipping-product: firefox
worker:
product: firefox
archive-domain:
by-project:
mozilla-beta: archive.mozilla.org
mozilla-release: archive.mozilla.org
mozilla-esr60: archive.mozilla.org
default: ftp.stage.mozaws.net
download-domain:
by-project:
mozilla-beta: download.mozilla.org
mozilla-release: download.mozilla.org
mozilla-esr60: download.mozilla.org
default: bouncer-bouncer-releng.stage.mozaws.net
channel-names:
by-project:
maple: ["beta", "beta-localtest", "beta-cdntest"]
@ -77,14 +73,6 @@ jobs:
shipping-product: firefox
worker:
product: firefox
archive-domain:
by-project:
mozilla-esr60: archive.mozilla.org
default: ftp.stage.mozaws.net
download-domain:
by-project:
mozilla-esr60: download.mozilla.org
default: download.mozilla.org
channel-names:
by-project:
mozilla-esr60: ["esr", "esr-localtest", "esr-cdntest"]
@ -113,14 +101,6 @@ jobs:
shipping-product: devedition
worker:
product: devedition
archive-domain:
by-project:
mozilla-beta: archive.mozilla.org
default: ftp.stage.mozaws.net
download-domain:
by-project:
mozilla-beta: download.mozilla.org
default: download.mozilla.org
channel-names:
by-project:
maple: ["aurora", "aurora-localtest", "aurora-cdntest"]

View File

@ -18,10 +18,8 @@ only-for-attributes:
job-template:
description: Beetmover submission for platform-independent langpacks {locales} in {platform} directory
worker-type:
by-project:
mozilla-beta: scriptworker-prov-v1/beetmoverworker-v1
mozilla-release: scriptworker-prov-v1/beetmoverworker-v1
mozilla-esr60: scriptworker-prov-v1/beetmoverworker-v1
default: scriptworker-prov-v1/beetmoverworker-dev
by-release-level:
production: scriptworker-prov-v1/beetmoverworker-v1
staging: scriptworker-prov-v1/beetmoverworker-dev
run-on-projects: []
shipping-phase: promote

View File

@ -15,25 +15,17 @@ kind-dependencies:
job-defaults:
description: Update bouncer aliases job
worker-type:
by-project:
mozilla-beta: scriptworker-prov-v1/bouncer-v1
mozilla-release: scriptworker-prov-v1/bouncer-v1
mozilla-esr60: scriptworker-prov-v1/bouncer-v1
default: scriptworker-prov-v1/bouncer-dev
by-release-level:
production: scriptworker-prov-v1/bouncer-v1
staging: scriptworker-prov-v1/bouncer-dev
worker:
implementation: bouncer-aliases
scopes:
by-project:
mozilla-beta:
by-release-level:
production:
- project:releng:bouncer:action:aliases
- project:releng:bouncer:server:production
mozilla-release:
- project:releng:bouncer:action:aliases
- project:releng:bouncer:server:production
mozilla-esr60:
- project:releng:bouncer:action:aliases
- project:releng:bouncer:server:production
default:
staging:
- project:releng:bouncer:action:aliases
- project:releng:bouncer:server:staging
run-on-projects: []

View File

@ -11,25 +11,17 @@ transforms:
job-defaults:
description: release bouncer submission job
worker-type:
by-project:
mozilla-beta: scriptworker-prov-v1/bouncer-v1
mozilla-release: scriptworker-prov-v1/bouncer-v1
mozilla-esr60: scriptworker-prov-v1/bouncer-v1
default: scriptworker-prov-v1/bouncer-dev
by-release-level:
production: scriptworker-prov-v1/bouncer-v1
staging: scriptworker-prov-v1/bouncer-dev
worker:
implementation: bouncer-submission
scopes:
by-project:
mozilla-beta:
by-release-level:
production:
- project:releng:bouncer:action:submission
- project:releng:bouncer:server:production
mozilla-release:
- project:releng:bouncer:action:submission
- project:releng:bouncer:server:production
mozilla-esr60:
- project:releng:bouncer:action:submission
- project:releng:bouncer:server:production
default:
staging:
- project:releng:bouncer:action:submission
- project:releng:bouncer:server:staging
run-on-projects: []

View File

@ -20,9 +20,8 @@ only-for-build-platforms:
job-template:
shipping-phase: promote
partner-bucket-scope:
by-project:
mozilla-beta: beetmover:bucket:partner
mozilla-release: beetmover:bucket:partner
default: beetmover:bucket:dep-partner
by-release-level:
production: beetmover:bucket:partner
staging: beetmover:bucket:dep-partner
partner-private-path: null
partner-public-path: "{platform}-EME-free/{locale}"

View File

@ -36,11 +36,9 @@ job-defaults:
tooltool-downloads: false
extra:
limit-locales:
by-project:
birch: true
jamun: true
maple: true
default: false
by-release-level:
staging: true
production: false
jobs:
macosx64-nightly:

View File

@ -13,10 +13,3 @@ kind-dependencies:
job-template:
shipping-phase: promote
worker-type:
by-project:
mozilla-central: scriptworker-prov-v1/beetmoverworker-v1
mozilla-beta: scriptworker-prov-v1/beetmoverworker-v1
mozilla-release: scriptworker-prov-v1/beetmoverworker-v1
mozilla-esr60: scriptworker-prov-v1/beetmoverworker-v1
default: scriptworker-prov-v1/beetmoverworker-dev

View File

@ -58,11 +58,11 @@ jobs:
build_type: opt
run:
extra-config:
by-project:
mozilla-(release|beta|esr.*):
by-release-level:
production:
stage_product: "firefox"
bucket_name: "net-mozaws-prod-delivery-firefox"
default:
staging:
stage_product: "firefox"
bucket_name: "net-mozaws-stage-delivery-firefox"
treeherder:
@ -75,11 +75,11 @@ jobs:
build_type: opt
run:
extra-config:
by-project:
mozilla-(release|beta):
by-release-level:
production:
stage_product: "mobile"
bucket_name: "net-mozaws-prod-delivery-archive"
default:
staging:
stage_product: "mobile"
bucket_name: "net-mozaws-stage-delivery-archive"
treeherder:
@ -92,11 +92,11 @@ jobs:
build_type: opt
run:
extra-config:
by-project:
mozilla-beta:
by-release-level:
production:
stage_product: "devedition"
bucket_name: "net-mozaws-prod-delivery-archive"
default:
staging:
stage_product: "devedition"
bucket_name: "net-mozaws-stage-delivery-archive"
treeherder:

View File

@ -18,26 +18,17 @@ kind-dependencies:
job-defaults:
description: mark release as shipped in Ship-It
worker-type:
by-project:
mozilla-central: scriptworker-prov-v1/shipit-v1
mozilla-beta: scriptworker-prov-v1/shipit-v1
mozilla-release: scriptworker-prov-v1/shipit-v1
mozilla-esr60: scriptworker-prov-v1/shipit-v1
default: scriptworker-prov-v1/shipit-dev
by-release-level:
production: scriptworker-prov-v1/shipit-v1
staging: scriptworker-prov-v1/shipit-dev
worker:
implementation: shipit-shipped
scopes:
by-project:
mozilla-beta:
by-release-level:
production:
- project:releng:ship-it:server:production
- project:releng:ship-it:action:mark-as-shipped
mozilla-release:
- project:releng:ship-it:server:production
- project:releng:ship-it:action:mark-as-shipped
mozilla-esr60:
- project:releng:ship-it:server:production
- project:releng:ship-it:action:mark-as-shipped
default:
staging:
- project:releng:ship-it:server:staging
- project:releng:ship-it:action:mark-as-shipped
run-on-projects: []

View File

@ -22,9 +22,8 @@ only-for-build-platforms:
job-template:
shipping-phase: promote
partner-bucket-scope:
by-project:
mozilla-beta: beetmover:bucket:partner
mozilla-release: beetmover:bucket:partner
default: beetmover:bucket:dep-partner
by-release-level:
production: beetmover:bucket:partner
staging: beetmover:bucket:dep-partner
partner-public-path: "partner-repacks/{partner}/{subpartner}/v{release_partner_build_number}/{platform}/{locale}"
partner-private-path: "{partner}/{version}-{build_number}/{subpartner}/{platform}/{locale}"

View File

@ -36,11 +36,9 @@ job-defaults:
tooltool-downloads: false
extra:
limit-locales:
by-project:
birch: true
jamun: true
maple: true
default: false
by-release-level:
staging: true
production: false
jobs:
linux-nightly:

View File

@ -17,6 +17,14 @@ job-defaults:
balrog-action: submit-toplevel
require-mirrors: false
platforms: ["linux", "linux64", "macosx64", "win32", "win64"]
archive-domain:
by-release-level:
production: archive.mozilla.org
staging: ftp.stage.mozaws.net
download-domain:
by-release-level:
production: download.mozilla.org
staging: bouncer-bouncer-releng.stage.mozaws.net
jobs:
firefox:
@ -25,16 +33,6 @@ jobs:
shipping-product: firefox
worker:
product: firefox
archive-domain:
by-project:
mozilla-release: archive.mozilla.org
mozilla-esr60: archive.mozilla.org
default: ftp.stage.mozaws.net
download-domain:
by-project:
mozilla-release: download.mozilla.org
mozilla-esr60: download.mozilla.org
default: download.mozilla.org
channel-names:
by-project:
birch: ["beta", "beta-localtest", "beta-cdntest"]

View File

@ -31,17 +31,17 @@ job-defaults:
branch-prefix: mozilla
product: firefox
archive-prefix:
by-project:
birch: "http://ftp.stage.mozaws.net/pub"
default: "https://archive.mozilla.org/pub"
by-release-level:
staging: "http://ftp.stage.mozaws.net/pub"
production: "https://archive.mozilla.org/pub"
previous-archive-prefix:
by-project:
birch: "https://archive.mozilla.org/pub"
default: null
by-release-level:
staging: "https://archive.mozilla.org/pub"
production: null
aus-server:
by-project:
birch: "https://aus4.stage.mozaws.net"
default: "https://aus5.mozilla.org"
by-release-level:
staging: "https://aus4.stage.mozaws.net"
production: "https://aus5.mozilla.org"
include-version:
by-project:
birch: beta

View File

@ -23,11 +23,9 @@ only-for-build-platforms:
job-template:
description: Signs {locales} XPIs for platform via addons.mozilla.org and pushes them
worker-type:
by-project:
mozilla-beta: scriptworker-prov-v1/addon-v1
mozilla-release: scriptworker-prov-v1/addon-v1
mozilla-esr60: scriptworker-prov-v1/addon-v1
default: scriptworker-prov-v1/addon-dev
by-release-level:
production: scriptworker-prov-v1/addon-v1
staging: scriptworker-prov-v1/addon-dev
worker:
implementation: sign-and-push-addons
channel:
@ -41,13 +39,9 @@ job-template:
upstream-artifacts: # See transforms
run-on-projects: []
scopes:
by-project:
mozilla-beta:
by-release-level:
production:
- project:releng:addons.mozilla.org:server:production
mozilla-release:
- project:releng:addons.mozilla.org:server:production
mozilla-esr60:
- project:releng:addons.mozilla.org:server:production
default:
staging:
- project:releng:addons.mozilla.org:server:staging
shipping-phase: promote

View File

@ -27,11 +27,9 @@ job-defaults:
kind: build
tier: 2
worker-type:
by-project:
mozilla-beta: scriptworker-prov-v1/pushsnap-v1
mozilla-release: scriptworker-prov-v1/pushsnap-v1
mozilla-esr60: scriptworker-prov-v1/pushsnap-v1
default: scriptworker-prov-v1/dep-pushsnap
by-release-level:
production: scriptworker-prov-v1/pushsnap-v1
staging: scriptworker-prov-v1/dep-pushsnap
worker:
implementation: push-snap

View File

@ -45,12 +45,10 @@ job-defaults:
VERSION: "{release_config[version]}"
BUILD_NUMBER: "{release_config[build_number]}"
CANDIDATES_DIR:
by-project:
jamun:
by-release-level:
staging:
https://net-mozaws-stage-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates
maple:
https://net-mozaws-stage-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates
default:
production:
https://net-mozaws-prod-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates
LC_ALL: C.UTF-8
LANG: C.UTF-8

View File

@ -29,23 +29,17 @@ job-defaults:
app-name: browser
branch-prefix: mozilla
archive-prefix:
by-project:
birch: "http://ftp.stage.mozaws.net/pub"
jamun: "http://ftp.stage.mozaws.net/pub"
maple: "http://ftp.stage.mozaws.net/pub"
default: "https://archive.mozilla.org/pub"
by-release-level:
staging: "http://ftp.stage.mozaws.net/pub"
production: "https://archive.mozilla.org/pub"
previous-archive-prefix:
by-project:
birch: "https://archive.mozilla.org/pub"
jamun: "https://archive.mozilla.org/pub"
maple: "https://archive.mozilla.org/pub"
default: null
by-release-level:
staging: "https://archive.mozilla.org/pub"
production: null
aus-server:
by-project:
birch: "https://aus4.stage.mozaws.net"
jamun: "https://aus4.stage.mozaws.net"
maple: "https://aus4.stage.mozaws.net"
default: "https://aus5.mozilla.org"
by-release-level:
staging: "https://aus4.stage.mozaws.net"
production: "https://aus5.mozilla.org"
# This is overridden for devedition to exclude 58.0b1
# because of the special case added by
# https://bugzilla.mozilla.org/show_bug.cgi?id=1419189

View File

@ -16,6 +16,7 @@ from mozbuild.util import ReadOnlyDict, memoize
from mozversioncontrol import get_repository_object
from . import APP_VERSION_PATH, GECKO, VERSION_PATH
from .util.attributes import RELEASE_PROJECTS
class ParameterMismatch(Exception):
@ -166,6 +167,14 @@ class Parameters(ReadOnlyDict):
return '{}/file/{}/{}'.format(repo, rev, path)
def release_level(self):
"""
Whether this is a staging release or not.
:return basestring: One of "production" or "staging".
"""
return 'production' if self['project'] in RELEASE_PROJECTS else 'staging'
def load_parameters_file(filename, strict=True, overrides=None):
"""

View File

@ -42,7 +42,7 @@ beetmover_description_schema = Schema({
Optional('label'): basestring,
Optional('treeherder'): task_description_schema['treeherder'],
Optional('bucket-scope'): optionally_keyed_by('project', basestring),
Optional('bucket-scope'): optionally_keyed_by('release-level', basestring),
Optional('shipping-phase'): task_description_schema['shipping-phase'],
Optional('shipping-product'): task_description_schema['shipping-product'],
})
@ -91,7 +91,7 @@ def make_task_description(config, jobs):
resolve_keyed_by(
job, 'bucket-scope', item_name=job['label'],
project=config.params['project']
**{'release-level': config.params.release_level()}
)
task = {

View File

@ -57,7 +57,7 @@ beetmover_description_schema = Schema({
# unique label to describe this beetmover task, defaults to {dep.label}-beetmover
Optional('label'): basestring,
Required('partner-bucket-scope'): optionally_keyed_by('project', basestring),
Required('partner-bucket-scope'): optionally_keyed_by('release-level', basestring),
Required('partner-public-path'): Any(None, basestring),
Required('partner-private-path'): Any(None, basestring),
@ -83,7 +83,8 @@ def validate(config, jobs):
def resolve_keys(config, jobs):
for job in jobs:
resolve_keyed_by(
job, 'partner-bucket-scope', item_name=job['label'], project=config.params['project']
job, 'partner-bucket-scope', item_name=job['label'],
**{'release-level': config.params.release_level()}
)
yield job

View File

@ -23,10 +23,12 @@ transforms = TransformSequence()
def make_task_worker(config, jobs):
for job in jobs:
resolve_keyed_by(
job, 'worker-type', item_name=job['name'], project=config.params['project']
job, 'worker-type', item_name=job['name'],
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
job, 'scopes', item_name=job['name'], project=config.params['project']
job, 'scopes', item_name=job['name'],
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
job, 'bouncer-products-per-alias',

View File

@ -110,10 +110,12 @@ transforms = TransformSequence()
def make_task_worker(config, jobs):
for job in jobs:
resolve_keyed_by(
job, 'worker-type', item_name=job['name'], project=config.params['project']
job, 'worker-type', item_name=job['name'],
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
job, 'scopes', item_name=job['name'], project=config.params['project']
job, 'scopes', item_name=job['name'],
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
job, 'bouncer-products', item_name=job['name'], project=config.params['project']

View File

@ -34,7 +34,10 @@ def populate_repack_manifests_url(config, tasks):
for property in ("limit-locales", ):
property = "extra.{}".format(property)
resolve_keyed_by(task, property, property, **config.params)
resolve_keyed_by(
task, property, property,
**{'release-level': config.params.release_level()}
)
if task['worker']['env']['REPACK_MANIFESTS_URL'].startswith('git@'):
task.setdefault('scopes', []).append(

View File

@ -34,7 +34,7 @@ push_apk_description_schema = Schema({
Required('attributes'): task_description_schema['attributes'],
Required('treeherder'): task_description_schema['treeherder'],
Required('run-on-projects'): task_description_schema['run-on-projects'],
Required('worker-type'): optionally_keyed_by('project', basestring),
Required('worker-type'): optionally_keyed_by('release-level', basestring),
Required('worker'): object,
Required('scopes'): None,
Required('requires'): task_description_schema['requires'],
@ -101,7 +101,7 @@ def make_task_description(config, jobs):
)
resolve_keyed_by(
job, 'worker.commit', item_name=job['name'],
project=config.params['project']
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
@ -113,7 +113,7 @@ def make_task_description(config, jobs):
resolve_keyed_by(
job, 'worker-type', item_name=job['name'],
project=config.params['project']
**{'release-level': config.params.release_level()}
)
yield job

View File

@ -45,7 +45,7 @@ beetmover_description_schema = Schema({
Optional('treeherder'): task_description_schema['treeherder'],
Required('description'): basestring,
Required('worker-type'): optionally_keyed_by('project', basestring),
Required('worker-type'): optionally_keyed_by('release-level', basestring),
Required('run-on-projects'): [],
# locale is passed only for l10n beetmoving
@ -79,7 +79,8 @@ def validate(config, jobs):
def resolve_keys(config, jobs):
for job in jobs:
resolve_keyed_by(
job, 'worker-type', item_name=job['label'], project=config.params['project']
job, 'worker-type', item_name=job['label'],
**{'release-level': config.params.release_level()}
)
yield job

View File

@ -35,7 +35,7 @@ def handle_keyed_by(config, jobs):
item=job,
field=field,
item_name=job['name'],
project=config.params['project']
**{'release-level': config.params.release_level()}
)
yield job

View File

@ -8,10 +8,12 @@ from __future__ import absolute_import, print_function, unicode_literals
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.attributes import copy_attributes_from_dependent_job
from taskgraph.util.schema import validate_schema, Schema, resolve_keyed_by, optionally_keyed_by
from taskgraph.util.schema import validate_schema, Schema
from taskgraph.util.scriptworker import (get_beetmover_bucket_scope,
get_beetmover_action_scope,
get_phase)
get_phase,
get_worker_type_for_scope,
)
from taskgraph.util.taskcluster import get_artifact_prefix
from taskgraph.transforms.beetmover import craft_release_properties
from taskgraph.transforms.task import task_description_schema
@ -56,7 +58,6 @@ release_generate_checksums_beetmover_schema = Schema({
Optional('shipping-phase'): task_description_schema['shipping-phase'],
Optional('shipping-product'): task_description_schema['shipping-product'],
Required('worker-type'): optionally_keyed_by('project', basestring),
})
@ -105,14 +106,10 @@ def make_task_description(config, jobs):
action_scope = get_beetmover_action_scope(config)
phase = get_phase(config)
resolve_keyed_by(
job, 'worker-type', item_name=label, project=config.params['project']
)
task = {
'label': label,
'description': description,
'worker-type': job['worker-type'],
'worker-type': get_worker_type_for_scope(config, bucket_scope),
'scopes': [bucket_scope, action_scope],
'dependencies': dependencies,
'attributes': attributes,

View File

@ -19,10 +19,12 @@ def make_task_description(config, jobs):
release_config = get_release_config(config)
for job in jobs:
resolve_keyed_by(
job, 'worker-type', item_name=job['name'], project=config.params['project']
job, 'worker-type', item_name=job['name'],
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
job, 'scopes', item_name=job['name'], project=config.params['project']
job, 'scopes', item_name=job['name'],
**{'release-level': config.params.release_level()}
)
job['worker']['release-name'] = '{product}-{version}-build{build_number}'.format(

View File

@ -26,7 +26,7 @@ langpack_sign_push_description_schema = Schema({
Required('dependent-task'): object,
Required('label'): basestring,
Required('description'): basestring,
Required('worker-type'): optionally_keyed_by('project', basestring),
Required('worker-type'): optionally_keyed_by('release-level', basestring),
Required('worker'): {
Required('implementation'): 'sign-and-push-addons',
Required('channel'): optionally_keyed_by(
@ -36,7 +36,7 @@ langpack_sign_push_description_schema = Schema({
},
Required('run-on-projects'): [],
Required('scopes'): optionally_keyed_by('project', [basestring]),
Required('scopes'): optionally_keyed_by('release-level', [basestring]),
Required('shipping-phase'): task_description_schema['shipping-phase'],
Required('shipping-product'): task_description_schema['shipping-product'],
})
@ -65,10 +65,12 @@ def validate(config, jobs):
def resolve_keys(config, jobs):
for job in jobs:
resolve_keyed_by(
job, 'worker-type', item_name=job['label'], project=config.params['project']
job, 'worker-type', item_name=job['label'],
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
job, 'scopes', item_name=job['label'], project=config.params['project']
job, 'scopes', item_name=job['label'],
**{'release-level': config.params.release_level()}
)
resolve_keyed_by(
job, 'worker.channel', item_name=job['label'],

View File

@ -28,7 +28,7 @@ push_snap_description_schema = Schema({
Required('description'): task_description_schema['description'],
Required('treeherder'): task_description_schema['treeherder'],
Required('run-on-projects'): task_description_schema['run-on-projects'],
Required('worker-type'): optionally_keyed_by('project', basestring),
Required('worker-type'): optionally_keyed_by('release-level', basestring),
Required('worker'): object,
Required('scopes'): optionally_keyed_by('project', [basestring]),
Required('shipping-phase'): task_description_schema['shipping-phase'],
@ -58,7 +58,8 @@ def make_task_description(config, jobs):
resolve_keyed_by(job, 'scopes', item_name=job['name'], project=config.params['project'])
resolve_keyed_by(
job, 'worker-type', item_name=job['name'], project=config.params['project']
job, 'worker-type', item_name=job['name'],
**{'release-level': config.params.release_level()}
)
yield job

View File

@ -30,7 +30,10 @@ def format(config, tasks):
env = task.get('worker', {}).get('env', {})
for k in env.keys():
resolve_keyed_by(env, k, 'snap envs', project=config.params['project'])
resolve_keyed_by(
env, k, 'snap envs',
**{'release-level': config.params.release_level()}
)
task['worker']['env'][k] = env[k].format(**format_params)
yield task

View File

@ -544,8 +544,8 @@ task_description_schema = Schema({
Optional('require-mirrors'): bool,
Optional('publish-rules'): optionally_keyed_by('project', [int]),
Optional('rules-to-update'): optionally_keyed_by('project', [basestring]),
Optional('archive-domain'): optionally_keyed_by('project', basestring),
Optional('download-domain'): optionally_keyed_by('project', basestring),
Optional('archive-domain'): optionally_keyed_by('release-level', basestring),
Optional('download-domain'): optionally_keyed_by('release-level', basestring),
Optional('blob-suffix'): basestring,
Optional('complete-mar-filename-pattern'): basestring,
Optional('complete-mar-bouncer-product-pattern'): basestring,
@ -1152,7 +1152,10 @@ def build_balrog_payload(config, task, task_def):
if prop in worker:
resolve_keyed_by(
worker, prop, task['description'],
**config.params
**{
'project': config.params['project'],
'release-level': config.params.release_level(),
}
)
task_def['payload'] = {
'build_number': release_config['build_number'],

View File

@ -98,6 +98,10 @@ def add_command(config, tasks):
item_name=task['name'],
project=config.params['project'],
platform=task['attributes']['build_platform'],
**{
'release-type': config.params['release_type'],
'release-level': config.params.release_level(),
}
)
# ignore things that resolved to null
if not task["extra"].get(arg):