bug 1431799 - add RC secondary tasks. r=bhearsum
MozReview-Commit-ID: 2hq4K5QVbWy
copy from taskcluster/ci/release-balrog-publishing/kind.yml
copy to taskcluster/ci/release-secondary-balrog-publishing/kind.yml
--- a/taskcluster/ci/release-balrog-publishing/kind.yml
+++ b/taskcluster/ci/release-secondary-balrog-publishing/kind.yml
@@ -6,17 +6,19 @@ loader: taskgraph.loader.transform:loade
transforms:
- taskgraph.transforms.release_deps:transforms
- taskgraph.transforms.release_balrog_publishing:transforms
- taskgraph.transforms.job:transforms
- taskgraph.transforms.task:transforms
kind-dependencies:
- - release-uptake-monitoring
+ - post-balrog-dummy
+ - post-beetmover-dummy
+ - release-updates-builder
job-defaults:
description: Schedule publishing in balrog
worker-type: buildbot-bridge/buildbot-bridge
run-on-projects: []
shipping-phase: ship
run:
using: buildbot
@@ -64,34 +66,21 @@ job-defaults:
try: ["{task_def[metadata][owner]}"]
maple: ["release+tcstaging@mozilla.com"]
default: []
routes:
- index.releases.v1.{branch}.latest.{product}.latest.schedule_publishing_in_balrog
- index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.schedule_publishing_in_balrog
jobs:
- firefox:
+ firefox-secondary-rc:
name: release-firefox_schedule_publishing_in_balrog
shipping-product: firefox
run:
product: firefox
buildername: release-{branch}-firefox_schedule_publishing_in_balrog
channels:
by-project:
- birch: release
- maple: beta
- mozilla-beta: beta
- mozilla-release: release
- mozilla-esr52: esr
- mozilla-esr59: esr
+ birch: beta
+ mozilla-release: beta
default: unknown
index:
product: firefox
- devedition:
- name: release-devedition_schedule_publishing_in_balrog
- shipping-product: devedition
- run:
- product: devedition
- buildername: release-{branch}-devedition_schedule_publishing_in_balrog
- channels: aurora
- index:
- product: devedition
copy from taskcluster/ci/release-notify-ship/kind.yml
copy to taskcluster/ci/release-secondary-notify-ship/kind.yml
--- a/taskcluster/ci/release-notify-ship/kind.yml
+++ b/taskcluster/ci/release-secondary-notify-ship/kind.yml
@@ -4,21 +4,17 @@
loader: taskgraph.loader.transform:loader
transforms:
- taskgraph.transforms.release_deps:transforms
- taskgraph.transforms.task:transforms
kind-dependencies:
- - push-apk
- - release-balrog-publishing
- - release-bouncer-aliases
- - release-version-bump
- - release-mark-as-shipped
+ - release-secondary-balrog-publishing
job-defaults:
name: notify-release-drivers-ship
description: Sends email to release-drivers telling release was shipped.
run-on-projects: []
shipping-phase: ship
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
@@ -38,32 +34,23 @@ job-defaults:
emails:
by-project:
mozilla-beta: ["release-signoff@mozilla.org"]
mozilla-release: ["release-signoff@mozilla.org"]
try: ["{task_def[metadata][owner]}"]
maple: ["release+tcstaging@mozilla.com"]
default: []
routes:
- - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.email-{channel}
- - index.releases.v1.{branch}.latest.{product}.latest.email-{channel}
+ - index.releases.v1.{branch}.{revision}.{product}-rc.{underscore_version}.build{build_number}.email-{channel}
+ - index.releases.v1.{branch}.latest.{product}-rc.latest.email-{channel}
index:
type: release
channel:
by-project:
- mozilla-beta: beta
- mozilla-release: release
- maple: maple
+ mozilla-release: beta
+ birch: birch
default: unknown
jobs:
- fennec:
- shipping-product: fennec
- index:
- product: fennec
- firefox:
+ firefox-rc:
shipping-product: firefox
index:
product: firefox
- devedition:
- shipping-product: devedition
- index:
- product: devedition
--- a/taskcluster/docs/kinds.rst
+++ b/taskcluster/docs/kinds.rst
@@ -250,16 +250,20 @@ Generate an installer using Ubuntu's Sna
release-notify-push
----------------------
Notify when a release has been pushed to CDNs.
release-notify-ship
----------------------
Notify when a release has been shipped.
+release-secondary-notify-ship
+----------------------
+Notify when an RC release has been shipped to the beta channel.
+
release-notify-promote
----------------------
Notify when a release has been promoted.
release-bouncer-sub
-------------------
Submits bouncer updates for releases.
@@ -276,17 +280,21 @@ release-generate-checksums
Generate the per-release checksums along with the summaries and upload it to S3.
release-final-verify
---------------------
Verifies the contents and package of release update MARs.
release-secondary-final-verify
---------------------
-Verifies the contents and package of release update MARs.
+Verifies the contents and package of release update MARs for RC releases.
+
+release-secondary-balrog-publishing
+---------------------
+Schedule an RC release to go live in Balrog. Usually this will happen on the beta channel, to a smaller audience, before the RC goes live on the release channel.
release-update-verify
---------------------
Verifies the contents and package of release update MARs.
release-updates-builder
-----------------------
Top level Balrog blob submission & patcher/update verify config updates.
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -364,27 +364,44 @@ def target_tasks_push_firefox(full_task_
return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
@_target_task('ship_firefox')
def target_tasks_ship_firefox(full_task_graph, parameters, graph_config):
"""Select the set of tasks required to ship firefox.
Previous build deps will be optimized out via action task."""
- filtered_for_candidates = target_tasks_push_firefox(
- full_task_graph, parameters, graph_config,
- )
+ is_rc = (parameters.get('desktop_release_type') == 'rc')
+ if is_rc:
+ # ship_firefox_rc runs after `promote` rather than `push`; include
+ # all promote tasks.
+ filtered_for_candidates = target_tasks_promote_firefox(
+ full_task_graph, parameters, graph_config,
+ )
+ else:
+ # ship_firefox runs after `push`; include all push tasks.
+ filtered_for_candidates = target_tasks_push_firefox(
+ full_task_graph, parameters, graph_config,
+ )
def filter(task):
# Include promotion tasks; these will be optimized out
if task.label in filtered_for_candidates:
return True
- if task.attributes.get('shipping_product') == 'firefox' and \
- task.attributes.get('shipping_phase') == 'ship':
- return True
+ if task.attributes.get('shipping_product') != 'firefox' or \
+ task.attributes.get('shipping_phase') != 'ship':
+ return False
+
+ if task.kind in (
+ 'release-secondary-balrog-publishing',
+ 'release-secondary-notify-ship',
+ ):
+ return is_rc
+ else:
+ return not is_rc
return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
@_target_task('promote_devedition')
def target_tasks_promote_devedition(full_task_graph, parameters, graph_config):
"""Select the superset of tasks required to promote a beta or release build
of devedition. This should include all non-android mozilla_{beta,release}