--- a/taskcluster/ci/beetmover-cdns/kind.yml
+++ b/taskcluster/ci/beetmover-cdns/kind.yml
@@ -14,23 +14,84 @@ kind-dependencies:
job-defaults:
worker-type:
by-project:
mozilla-release: scriptworker-prov-v1/beetmoverworker-v1
mozilla-beta: scriptworker-prov-v1/beetmoverworker-v1
default: scriptworker-prov-v1/beetmoverworker-dev
run-on-projects: []
- shipping-phase: publish
+ shipping-phase: push
+ index:
+ type: release
+ notifications:
+ completed:
+ subject: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ message: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ plugins:
+ by-project:
+ mozilla-beta: ["log_collect"]
+ mozilla-release: ["log_collect"]
+ default: []
+
+ failed:
+ subject: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ message: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ plugins:
+ by-project:
+ mozilla-beta: ["log_collect", "ses"]
+ mozilla-release: ["log_collect", "ses"]
+ default: ["ses"]
+ emails:
+ by-project:
+ mozilla-beta: ["release-automation-notifications@mozilla.com"]
+ mozilla-release: ["release-automation-notifications@mozilla.com"]
+ try: ["{task_def[metadata][owner]}"]
+ maple: ["release+tcstaging@mozilla.com"]
+ default: []
+
+ exception:
+ subject: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ message: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ plugins:
+ by-project:
+ mozilla-beta: ["log_collect", "ses"]
+ mozilla-release: ["log_collect", "ses"]
+ default: ["ses"]
+ emails:
+ by-project:
+ mozilla-beta: ["release-automation-notifications@mozilla.com"]
+ mozilla-release: ["release-automation-notifications@mozilla.com"]
+ try: ["{task_def[metadata][owner]}"]
+ maple: ["release+tcstaging@mozilla.com"]
+ default: []
jobs:
fennec-push-to-cdns:
name: fennec_push_to_cdns
product: fennec
shipping-product: fennec
routes:
- index.releases.v1.{branch}.latest.fennec.latest.beetmover_cdns
- index.releases.v1.{branch}.{revision}.fennec.{underscore_version}.build{build_number}.beetmover_cdns
treeherder-platform: Android/opt
index:
- type: release
product: fennec
- job-name: android-api-16-opt
+ devedition-push-to-cdns:
+ name: devedition_push_to_cdns
+ product: devedition
+ shipping-product: devedition
+ routes:
+ - index.releases.v1.{branch}.latest.devedition.latest.beetmover_cdns
+ - index.releases.v1.{branch}.{revision}.devedition.{underscore_version}.build{build_number}.beetmover_cdns
+ treeherder-platform: Linux64-devedition/opt
+ index:
+ product: devedition
+ firefox-push-to-cdns:
+ name: firefox_push_to_cdns
+ product: firefox
+ shipping-product: firefox
+ routes:
+ - index.releases.v1.{branch}.latest.firefox.latest.beetmover_cdns
+ - index.releases.v1.{branch}.{revision}.firefox.{underscore_version}.build{build_number}.beetmover_cdns
+ treeherder-platform: Linux64/opt
+ index:
+ product: firefox
--- a/taskcluster/ci/beetmover-checksums/kind.yml
+++ b/taskcluster/ci/beetmover-checksums/kind.yml
@@ -9,8 +9,53 @@ transforms:
- taskgraph.transforms.beetmover_checksums:transforms
- taskgraph.transforms.task:transforms
kind-dependencies:
- checksums-signing
only-for-attributes:
- nightly
+
+job-template:
+ shipping-phase: promote
+ shipping-product: firefox
+ notifications:
+ completed:
+ subject: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ message: "COMPLETED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ plugins:
+ by-project:
+ mozilla-beta: ["log_collect"]
+ mozilla-release: ["log_collect"]
+ default: []
+
+ failed:
+ subject: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ message: "FAILED: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ plugins:
+ by-project:
+ mozilla-beta: ["log_collect", "ses"]
+ mozilla-release: ["log_collect", "ses"]
+ default: ["ses"]
+ emails:
+ by-project:
+ mozilla-beta: ["release-automation-notifications@mozilla.com"]
+ mozilla-release: ["release-automation-notifications@mozilla.com"]
+ try: ["{task_def[metadata][owner]}"]
+ maple: ["release+tcstaging@mozilla.com"]
+ default: []
+
+ exception:
+ subject: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ message: "EXCEPTION: [{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]}] {task_def[metadata][name]} task"
+ plugins:
+ by-project:
+ mozilla-beta: ["log_collect", "ses"]
+ mozilla-release: ["log_collect", "ses"]
+ default: ["ses"]
+ emails:
+ by-project:
+ mozilla-beta: ["release-automation-notifications@mozilla.com"]
+ mozilla-release: ["release-automation-notifications@mozilla.com"]
+ try: ["{task_def[metadata][owner]}"]
+ maple: ["release+tcstaging@mozilla.com"]
+ default: []
--- a/taskcluster/ci/beetmover-l10n/kind.yml
+++ b/taskcluster/ci/beetmover-l10n/kind.yml
@@ -17,8 +17,13 @@ only-for-attributes:
- nightly
not-for-build-platforms:
- linux-nightly/opt
- linux64-nightly/opt
- macosx64-nightly/opt
- win32-nightly/opt
- win64-nightly/opt
+ - linux-devedition-nightly/opt
+ - linux64-devedition-nightly/opt
+ - macosx64-devedition-nightly/opt
+ - win32-devedition-nightly/opt
+ - win64-devedition-nightly/opt
--- a/taskcluster/ci/beetmover-repackage/kind.yml
+++ b/taskcluster/ci/beetmover-repackage/kind.yml
@@ -15,8 +15,16 @@ kind-dependencies:
- partials-signing
only-for-build-platforms:
- linux-nightly/opt
- linux64-nightly/opt
- macosx64-nightly/opt
- win32-nightly/opt
- win64-nightly/opt
+ - linux-devedition-nightly/opt
+ - linux64-devedition-nightly/opt
+ - macosx64-devedition-nightly/opt
+ - win32-devedition-nightly/opt
+ - win64-devedition-nightly/opt
+
+job-template:
+ shipping-phase: promote
--- a/taskcluster/ci/beetmover/kind.yml
+++ b/taskcluster/ci/beetmover/kind.yml
@@ -16,8 +16,13 @@ only-for-attributes:
- nightly
not-for-build-platforms:
- linux-nightly/opt
- linux64-nightly/opt
- macosx64-nightly/opt
- win32-nightly/opt
- win64-nightly/opt
+ - linux-devedition-nightly/opt
+ - linux64-devedition-nightly/opt
+ - macosx64-devedition-nightly/opt
+ - win32-devedition-nightly/opt
+ - win64-devedition-nightly/opt
--- a/taskcluster/ci/repackage-l10n/kind.yml
+++ b/taskcluster/ci/repackage-l10n/kind.yml
@@ -15,8 +15,13 @@ kind-dependencies:
- nightly-l10n-signing
only-for-build-platforms:
- linux-nightly/opt
- linux64-nightly/opt
- macosx64-nightly/opt
- win32-nightly/opt
- win64-nightly/opt
+ - linux-devedition-nightly/opt
+ - linux64-devedition-nightly/opt
+ - macosx64-devedition-nightly/opt
+ - win32-devedition-nightly/opt
+ - win64-devedition-nightly/opt
--- a/taskcluster/taskgraph/transforms/beetmover.py
+++ b/taskcluster/taskgraph/transforms/beetmover.py
@@ -6,17 +6,18 @@ Transform the beetmover task into an act
"""
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
from taskgraph.util.scriptworker import (get_beetmover_bucket_scope,
- get_beetmover_action_scope)
+ get_beetmover_action_scope,
+ get_phase)
from taskgraph.transforms.task import task_description_schema
from voluptuous import Any, Required, Optional
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
@@ -177,26 +178,31 @@ UPSTREAM_ARTIFACT_UNSIGNED_PATHS = {
"host/bin/mar.exe",
"host/bin/mbsdiff.exe",
],
'win64-devedition-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
"host/bin/mar.exe",
"host/bin/mbsdiff.exe",
],
'linux64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
+ 'linux64-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
'linux-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
+ 'linux-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
'android-x86-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
'android-x86-old-id-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
'android-aarch64-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
'android-api-16-nightly-l10n': ["balrog_props.json"],
'android-api-16-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
'android-api-16-old-id-nightly-multi': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_MULTI,
'macosx64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
+ 'macosx64-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
'win32-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
+ 'win32-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
'win64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
+ 'win64-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
}
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
UPSTREAM_ARTIFACT_SIGNED_PATHS = {
'linux64-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_EN_US + [
"target.tar.bz2",
@@ -250,36 +256,54 @@ UPSTREAM_ARTIFACT_SIGNED_PATHS = {
],
'win64-devedition-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_EN_US + [
"target.zip",
],
'linux64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
"target.tar.bz2",
"target.tar.bz2.asc",
],
+ 'linux64-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
+ "target.tar.bz2",
+ "target.tar.bz2.asc",
+ ],
'linux-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
"target.tar.bz2",
"target.tar.bz2.asc",
],
+ 'linux-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
+ "target.tar.bz2",
+ "target.tar.bz2.asc",
+ ],
'android-x86-nightly-multi': ["target.apk"],
'android-x86-old-id-nightly-multi': ["target.apk"],
'android-aarch64-nightly-multi': ["target.apk"],
'android-api-16-nightly-l10n': ["target.apk"],
'android-api-16-nightly-multi': ["target.apk"],
'android-api-16-old-id-nightly-multi': ["target.apk"],
'macosx64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
"target.dmg",
"target.dmg.asc",
],
+ 'macosx64-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
+ "target.dmg",
+ "target.dmg.asc",
+ ],
'win32-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
"target.zip",
],
+ 'win32-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
+ "target.zip",
+ ],
'win64-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
"target.zip",
],
+ 'win64-devedition-nightly-l10n': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_L10N + [
+ "target.zip",
+ ],
}
# Voluptuous uses marker objects as dictionary *keys*, but they are not
# comparable, so we cast all of the keys back to regular strings
task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()}
transforms = TransformSequence()
@@ -301,16 +325,19 @@ beetmover_description_schema = Schema({
# treeherder is allowed here to override any defaults we use for beetmover. See
# taskcluster/taskgraph/transforms/task.py for the schema details, and the
# below transforms for defaults of various values.
Optional('treeherder'): task_description_schema['treeherder'],
# locale is passed only for l10n beetmoving
Optional('locale'): basestring,
+
+ Optional('shipping-phase'): task_description_schema['shipping-phase'],
+ Optional('shipping-product'): task_description_schema['shipping-product'],
})
@transforms.add
def validate(config, jobs):
for job in jobs:
label = job.get('dependent-task', object).__dict__.get('label', '?no-label?')
yield validate_schema(
@@ -353,26 +380,28 @@ def make_task_description(config, jobs):
attributes = copy_attributes_from_dependent_job(dep_job)
if job.get('locale'):
attributes['locale'] = job['locale']
bucket_scope = get_beetmover_bucket_scope(config)
action_scope = get_beetmover_action_scope(config)
+ phase = get_phase(config)
task = {
'label': label,
'description': description,
'worker-type': 'scriptworker-prov-v1/beetmoverworker-v1',
'scopes': [bucket_scope, action_scope],
'dependencies': dependencies,
'attributes': attributes,
'run-on-projects': dep_job.attributes.get('run_on_projects'),
'treeherder': treeherder,
+ 'shipping-phase': phase,
}
yield task
def generate_upstream_artifacts(signing_task_ref, build_task_ref, platform,
locale=None):
build_mapping = UPSTREAM_ARTIFACT_UNSIGNED_PATHS
--- a/taskcluster/taskgraph/transforms/beetmover_cdns.py
+++ b/taskcluster/taskgraph/transforms/beetmover_cdns.py
@@ -7,17 +7,17 @@ Transform the beetmover-cdns task into a
from __future__ import absolute_import, print_function, unicode_literals
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.schema import (
optionally_keyed_by, resolve_keyed_by, validate_schema, Schema
)
from taskgraph.util.scriptworker import (
- get_beetmover_bucket_scope, get_beetmover_action_scope
+ get_beetmover_bucket_scope, get_beetmover_action_scope,
)
from taskgraph.transforms.job import job_description_schema
from taskgraph.transforms.task import task_description_schema
from voluptuous import Any, Required, Optional
# Voluptuous uses marker objects as dictionary *keys*, but they are not
# comparable, so we cast all of the keys back to regular strings
task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()}
@@ -38,16 +38,17 @@ beetmover_cdns_description_schema = Sche
Optional('run'): {basestring: object},
Optional('run-on-projects'): task_description_schema['run-on-projects'],
Required('worker-type'): optionally_keyed_by('project', basestring),
Optional('dependencies'): {basestring: taskref_or_string},
Optional('index'): {basestring: basestring},
Optional('routes'): [basestring],
Required('shipping-phase'): task_description_schema['shipping-phase'],
Required('shipping-product'): task_description_schema['shipping-product'],
+ Optional('notifications'): task_description_schema['notifications'],
})
@transforms.add
def validate(config, jobs):
for job in jobs:
label = job['name']
yield validate_schema(
@@ -84,16 +85,19 @@ def make_beetmover_cdns_description(conf
'description': description,
'worker-type': job['worker-type'],
'scopes': [bucket_scope, action_scope],
'product': job['product'],
'dependencies': job['dependencies'],
'attributes': job.get('attributes', {}),
'run-on-projects': job.get('run-on-projects'),
'treeherder': treeherder,
+ 'shipping-phase': job.get('shipping-phase', 'push'),
+ 'shipping-product': job.get('shipping-product'),
+ 'notifications': job.get('notifications'),
}
yield task
@transforms.add
def make_beetmover_cdns_worker(config, jobs):
for job in jobs:
--- a/taskcluster/taskgraph/transforms/beetmover_checksums.py
+++ b/taskcluster/taskgraph/transforms/beetmover_checksums.py
@@ -26,16 +26,19 @@ taskref_or_string = Any(
{Required('task-reference'): basestring})
beetmover_checksums_description_schema = Schema({
Required('dependent-task'): object,
Required('depname', default='build'): basestring,
Optional('label'): basestring,
Optional('treeherder'): task_description_schema['treeherder'],
Optional('locale'): basestring,
+ Optional('shipping-phase'): task_description_schema['shipping-phase'],
+ Optional('shipping-product'): task_description_schema['shipping-product'],
+ Optional('notifications'): task_description_schema['notifications'],
})
@transforms.add
def validate(config, jobs):
for job in jobs:
label = job.get('dependent-task', object).__dict__.get('label', '?no-label?')
yield validate_schema(
@@ -100,16 +103,25 @@ def make_beetmover_checksums_description
'scopes': [bucket_scope, action_scope],
'dependencies': dependencies,
'attributes': attributes,
'run-on-projects': dep_job.attributes.get('run_on_projects'),
'treeherder': treeherder,
'extra': extra,
}
+ if 'shipping-phase' in job:
+ task['shipping-phase'] = job['shipping-phase']
+
+ if 'shipping-product' in job:
+ task['shipping-product'] = job['shipping-product']
+
+ if 'notifications' in job:
+ task['notifications'] = job['notifications']
+
yield task
def generate_upstream_artifacts(refs, platform, locale=None):
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
--- a/taskcluster/taskgraph/transforms/beetmover_repackage.py
+++ b/taskcluster/taskgraph/transforms/beetmover_repackage.py
@@ -9,29 +9,32 @@ from __future__ import absolute_import,
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.attributes import copy_attributes_from_dependent_job
from taskgraph.util.partials import (get_balrog_platform_name,
get_partials_artifacts,
get_partials_artifact_map)
from taskgraph.util.schema import validate_schema, Schema
from taskgraph.util.scriptworker import (get_beetmover_bucket_scope,
- get_beetmover_action_scope)
+ get_beetmover_action_scope,
+ get_phase)
from taskgraph.transforms.task import task_description_schema
from voluptuous import Any, Required, Optional
import logging
import re
logger = logging.getLogger(__name__)
_WINDOWS_BUILD_PLATFORMS = [
'win64-nightly',
- 'win32-nightly'
+ 'win32-nightly',
+ 'win64-devedition-nightly',
+ 'win32-devedition-nightly',
]
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
_DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US = [
"balrog_props.json",
@@ -63,51 +66,54 @@ logger = logging.getLogger(__name__)
"balrog_props.json",
]
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
UPSTREAM_ARTIFACT_UNSIGNED_PATHS = {
- r'^(linux(|64)|macosx64)-nightly$': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
- 'host/bin/mar',
- 'host/bin/mbsdiff',
- ],
- r'^win(32|64)-nightly$': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
- "host/bin/mar.exe",
- "host/bin/mbsdiff.exe",
- ],
- r'^(linux(|64)|macosx64|win(32|64))-nightly-l10n$': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
+ r'^(linux(|64)|macosx64)(|-devedition)-nightly$':
+ _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
+ 'host/bin/mar',
+ 'host/bin/mbsdiff',
+ ],
+ r'^win(32|64)(|-devedition)-nightly$':
+ _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US + [
+ "host/bin/mar.exe",
+ "host/bin/mbsdiff.exe",
+ ],
+ r'^(linux(|64)|macosx64|win(32|64))(|-devedition)-nightly-l10n$':
+ _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_L10N,
}
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
UPSTREAM_ARTIFACT_SIGNED_PATHS = {
- r'^linux(|64)-nightly(|-l10n)$': ['target.tar.bz2', 'target.tar.bz2.asc'],
- r'^win(32|64)-nightly(|-l10n)$': ['target.zip'],
+ r'^linux(|64)(|-devedition)-nightly(|-l10n)$': ['target.tar.bz2', 'target.tar.bz2.asc'],
+ r'^win(32|64)(|-devedition)-nightly(|-l10n)$': ['target.zip'],
}
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
UPSTREAM_ARTIFACT_REPACKAGE_PATHS = {
- r'^macosx64-nightly(|-l10n)$': ['target.dmg'],
+ r'^macosx64(|-devedition)-nightly(|-l10n)$': ['target.dmg'],
}
# Until bug 1331141 is fixed, if you are adding any new artifacts here that
# need to be transfered to S3, please be aware you also need to follow-up
# with a beetmover patch in https://github.com/mozilla-releng/beetmoverscript/.
# See example in bug 1348286
UPSTREAM_ARTIFACT_SIGNED_REPACKAGE_PATHS = {
- r'^(linux(|64)|macosx64)-nightly(|-l10n)$': ['target.complete.mar'],
- r'^win64-nightly(|-l10n)$': ['target.complete.mar', 'target.installer.exe'],
- r'^win32-nightly(|-l10n)$': [
+ r'^(linux(|64)|macosx64)(|-devedition)-nightly(|-l10n)$': ['target.complete.mar'],
+ r'^win64(|-devedition)-nightly(|-l10n)$': ['target.complete.mar', 'target.installer.exe'],
+ r'^win32(|-devedition)-nightly(|-l10n)$': [
'target.complete.mar',
'target.installer.exe',
'target.stub-installer.exe'
],
}
# Compile every regex once at import time
for dict_ in (
@@ -142,16 +148,18 @@ beetmover_description_schema = Schema({
# treeherder is allowed here to override any defaults we use for beetmover. See
# taskcluster/taskgraph/transforms/task.py for the schema details, and the
# below transforms for defaults of various values.
Optional('treeherder'): task_description_schema['treeherder'],
# locale is passed only for l10n beetmoving
Optional('locale'): basestring,
+ Optional('shipping-phase'): task_description_schema['shipping-phase'],
+ Optional('shipping-product'): task_description_schema['shipping-product'],
})
@transforms.add
def validate(config, jobs):
for job in jobs:
label = job.get('dependent-task', object).__dict__.get('label', '?no-label?')
yield validate_schema(
@@ -227,26 +235,29 @@ def make_task_description(config, jobs):
dependencies.update(repackage_signing_deps)
attributes = copy_attributes_from_dependent_job(dep_job)
if job.get('locale'):
attributes['locale'] = job['locale']
bucket_scope = get_beetmover_bucket_scope(config)
action_scope = get_beetmover_action_scope(config)
+ phase = get_phase(config)
task = {
'label': label,
'description': description,
'worker-type': 'scriptworker-prov-v1/beetmoverworker-v1',
'scopes': [bucket_scope, action_scope],
'dependencies': dependencies,
'attributes': attributes,
'run-on-projects': dep_job.attributes.get('run_on_projects'),
'treeherder': treeherder,
+ 'shipping-phase': job.get('shipping-phase', phase),
+ 'shipping-product': job.get('shipping-product'),
}
yield task
def generate_upstream_artifacts(build_task_ref, build_signing_task_ref,
repackage_task_ref, repackage_signing_task_ref,
platform, locale=None):
@@ -339,17 +350,19 @@ def is_valid_beetmover_job(job):
return (len(job["dependencies"]) == expected_dep_count and
any(['repackage' in j for j in job['dependencies']]))
@transforms.add
def make_task_worker(config, jobs):
for job in jobs:
if not is_valid_beetmover_job(job):
- raise NotImplementedError("Beetmover_repackage must have five dependencies.")
+ raise NotImplementedError(
+ "{}: Beetmover_repackage must have five dependencies.".format(job['label'])
+ )
locale = job["attributes"].get("locale")
platform = job["attributes"]["build_platform"]
build_task = None
build_signing_task = None
repackage_task = None
repackage_signing_task = None
@@ -418,19 +431,23 @@ def make_partials_artifacts(config, jobs
job['worker']['upstream-artifacts'].extend(upstream_artifacts)
extra = list()
artifact_map = get_partials_artifact_map(
config.params.get('release_history'), balrog_platform, locale)
for artifact in artifact_map:
- extra.append({
+ artifact_extra = {
'locale': locale,
'artifact_name': artifact,
- 'buildid': artifact_map[artifact],
+ 'buildid': artifact_map[artifact]['buildid'],
'platform': balrog_platform,
- })
+ }
+ for rel_attr in ('previousBuildNumber', 'previousVersion'):
+ if artifact_map[artifact].get(rel_attr):
+ artifact_extra[rel_attr] = artifact_map[artifact][rel_attr]
+ extra.append(artifact_extra)
job.setdefault('extra', {})
job['extra']['partials'] = extra
yield job
--- a/taskcluster/taskgraph/transforms/beetmover_repackage_l10n.py
+++ b/taskcluster/taskgraph/transforms/beetmover_repackage_l10n.py
@@ -32,10 +32,12 @@ def make_beetmover_description(config, j
'symbol': join_symbol(group, symbol),
}
beet_description = {
'label': job['label'],
'dependent-task': dep_job,
'treeherder': treeherder,
'locale': locale,
+ 'shipping-phase': job.get('shipping-phase'),
+ 'shipping-product': job.get('shipping-product'),
}
yield beet_description