mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 15:25:52 +00:00
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:
parent
36100c0619
commit
f8cc2f6b8f
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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"]
|
||||
|
@ -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
|
||||
|
@ -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: []
|
||||
|
@ -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: []
|
||||
|
@ -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}"
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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: []
|
||||
|
@ -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}"
|
||||
|
@ -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:
|
||||
|
@ -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"]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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):
|
||||
"""
|
||||
|
@ -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 = {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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',
|
||||
|
@ -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']
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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(
|
||||
|
@ -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'],
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'],
|
||||
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user