bug 1423081 - partner_repack support. r=callek draft
authorAki Sasaki <asasaki@mozilla.com>
Tue, 05 Dec 2017 19:25:04 -0800
changeset 711430 4f3853517e1e20406c5767c965f51bc86fa89869
parent 711429 a80ef33ff34db5dde18e4571eaffba38701273a5
child 711431 8b7f5c85e169010c73f8b02a5e5e38fb30bbd523
push id93069
push userasasaki@mozilla.com
push dateWed, 13 Dec 2017 22:57:07 +0000
reviewerscallek
bugs1423081
milestone59.0a1
bug 1423081 - partner_repack support. r=callek MozReview-Commit-ID: LgIKGfC4gN5
taskcluster/ci/release-partner-repack/kind.yml
taskcluster/taskgraph/transforms/partner_repack.py
new file mode 100644
--- /dev/null
+++ b/taskcluster/ci/release-partner-repack/kind.yml
@@ -0,0 +1,190 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+loader: taskgraph.loader.transform:loader
+
+transforms:
+   - taskgraph.transforms.release_deps:transforms
+   - taskgraph.transforms.partner_repack:transforms
+   - taskgraph.transforms.job:transforms
+   - taskgraph.transforms.task:transforms
+
+kind-dependencies:
+   - post-beetmover-dummy
+
+job-defaults:
+   description: Release Promotion partner repacks
+   worker-type: buildbot-bridge/buildbot-bridge
+   run-on-projects: []
+   shipping-product: firefox
+   shipping-phase: promote
+   run:
+      using: buildbot
+      release-promotion: true
+      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: []
+   index:
+      type: release
+      product: firefox
+
+jobs:
+   firefox-linux:
+      label: firefox linux partner repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "git@github.com:mozilla-partners/repack-manifests.git"
+                  mozilla-release: "git@github.com:mozilla-partners/repack-manifests.git"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-linux_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.partner_repacks.linux
+         - index.releases.v1.{branch}.latest.{product}.latest.partner_repacks.linux
+
+   firefox-linux64:
+      label: firefox linux64 partner repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "git@github.com:mozilla-partners/repack-manifests.git"
+                  mozilla-release: "git@github.com:mozilla-partners/repack-manifests.git"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-linux64_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.partner_repacks.linux64
+         - index.releases.v1.{branch}.latest.{product}.latest.partner_repacks.linux64
+
+   firefox-macosx:
+      label: firefox macosx64 partner repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "git@github.com:mozilla-partners/repack-manifests.git"
+                  mozilla-release: "git@github.com:mozilla-partners/repack-manifests.git"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-macosx64_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.partner_repacks.macosx64
+         - index.releases.v1.{branch}.latest.{product}.latest.partner_repacks.macosx64
+
+   firefox-win32:
+      label: firefox win32 partner repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "git@github.com:mozilla-partners/repack-manifests.git"
+                  mozilla-release: "git@github.com:mozilla-partners/repack-manifests.git"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-win32_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.partner_repacks.win32
+         - index.releases.v1.{branch}.latest.{product}.latest.partner_repacks.win32
+
+   firefox-win64:
+      label: firefox win64 partner repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "git@github.com:mozilla-partners/repack-manifests.git"
+                  mozilla-release: "git@github.com:mozilla-partners/repack-manifests.git"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-win64_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.partner_repacks.win64
+         - index.releases.v1.{branch}.latest.{product}.latest.partner_repacks.win64
+
+   firefox-macosx-eme-free:
+      label: firefox macosx64 EME-free repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "https://github.com/mozilla-partners/mozilla-EME-free-manifest"
+                  mozilla-release: "https://github.com/mozilla-partners/mozilla-EME-free-manifest"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-macosx64_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.eme_free_repacks.macosx64
+         - index.releases.v1.{branch}.latest.{product}.latest.eme_free_repacks.macosx64
+
+   firefox-win32-eme-free:
+      label: firefox win32 EME-free repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "https://github.com/mozilla-partners/mozilla-EME-free-manifest"
+                  mozilla-release: "https://github.com/mozilla-partners/mozilla-EME-free-manifest"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-win32_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.eme_free_repacks.win32
+         - index.releases.v1.{branch}.latest.{product}.latest.eme_free_repacks.win32
+
+   firefox-win64-eme-free:
+      label: firefox win64 EME-free repacks
+      worker:
+         properties:
+            repack_manifests_url:
+               by-project:
+                  mozilla-beta: "https://github.com/mozilla-partners/mozilla-EME-free-manifest"
+                  mozilla-release: "https://github.com/mozilla-partners/mozilla-EME-free-manifest"
+                  default: "git@github.com:mozilla-releng/staging-repack-manifests.git"
+      run:
+         buildername: release-{branch}-firefox-win64_partner_repacks
+      routes:
+         - index.releases.v1.{branch}.{revision}.{product}.{underscore_version}.build{build_number}.eme_free_repacks.win64
+         - index.releases.v1.{branch}.latest.{product}.latest.eme_free_repacks.win64
new file mode 100644
--- /dev/null
+++ b/taskcluster/taskgraph/transforms/partner_repack.py
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+"""
+Transform the partner repack task into an actual task description.
+"""
+
+from __future__ import absolute_import, print_function, unicode_literals
+
+from taskgraph.transforms.base import TransformSequence
+from taskgraph.util.schema import resolve_keyed_by
+
+
+transforms = TransformSequence()
+
+
+@transforms.add
+def resolve_properties(config, tasks):
+    for task in tasks:
+        for property in ("repack_manifests_url", ):
+            property = "worker.properties.{}".format(property)
+            resolve_keyed_by(task, property, property, **config.params)
+            yield task