bug 1398793: enable cross platform update verify for in-tree releases. r=aki
authorBen Hearsum <bhearsum@mozilla.com>
Wed, 03 Jan 2018 14:28:24 -0500
changeset 442151 ae502b906e56c100eb2f447549d7c11dd6a738d3
parent 442150 3384659645d329570b8b3a70391a43584d1930cd
child 442152 a6983d351ac2cc698cc798d1d1846b595fee4a48
push id124
push userfmarier@mozilla.com
push dateTue, 30 Jan 2018 01:38:36 +0000
reviewersaki
bugs1398793
milestone59.0a1
bug 1398793: enable cross platform update verify for in-tree releases. r=aki
taskcluster/ci/release-buildbot-update-verify/kind.yml
taskcluster/ci/release-update-verify/kind.yml
taskcluster/ci/release-updates-builder/kind.yml
taskcluster/docs/kinds.rst
taskcluster/taskgraph/transforms/buildbot_update_verify.py
testing/mozharness/scripts/release/updates.py
deleted file mode 100644
--- a/taskcluster/ci/release-buildbot-update-verify/kind.yml
+++ /dev/null
@@ -1,291 +0,0 @@
-# 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
-
-kind-dependencies:
-   - post-balrog-dummy
-   - post-beetmover-dummy
-   - release-updates-builder
-
-transforms:
-   - taskgraph.transforms.release_deps:transforms
-   - taskgraph.transforms.buildbot_update_verify:transforms
-   - taskgraph.transforms.job:transforms
-   - taskgraph.transforms.task:transforms
-
-job-defaults:
-   name: update-verify
-   run-on-projects: []  # to make sure this never runs in CI
-   shipping-phase: promote
-   worker-type: buildbot-bridge/buildbot-bridge
-   run:
-      using: buildbot
-      release-promotion: true
-   worker:
-      properties:
-         NO_BBCONFIG: "1"
-   extra:
-      chunks: 12
-   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:
-   firefox-win64:
-      description: win64 update verify
-      shipping-product: firefox
-      attributes:
-         build_platform: win64
-      run:
-         product: firefox
-      worker:
-         properties:
-            platform: win64
-            CHANNEL:
-               by-project:
-                  jamun: "beta-localtest"
-                  maple: "beta-localtest"
-                  mozilla-beta: "beta-localtest"
-                  mozilla-release: "release-localtest"
-                  mozilla-esr52: "esr-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  jamun: "beta-firefox-win64.cfg"
-                  maple: "beta-firefox-win64.cfg"
-                  mozilla-beta: "beta-firefox-win64.cfg"
-                  mozilla-release: "release-firefox-win64.cfg"
-                  mozilla-esr52: "esr-firefox-win64.cfg"
-                  default: "none"
-
-   firefox-win32:
-      description: win32 update verify
-      shipping-product: firefox
-      attributes:
-         build_platform: win32
-      run:
-         product: firefox
-      worker:
-         properties:
-            platform: win32
-            CHANNEL:
-               by-project:
-                  jamun: "beta-localtest"
-                  maple: "beta-localtest"
-                  mozilla-beta: "beta-localtest"
-                  mozilla-release: "release-localtest"
-                  mozilla-esr52: "esr-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  jamun: "beta-firefox-win32.cfg"
-                  maple: "beta-firefox-win32.cfg"
-                  mozilla-beta: "beta-firefox-win32.cfg"
-                  mozilla-release: "release-firefox-win32.cfg"
-                  mozilla-esr52: "esr-firefox-win32.cfg"
-                  default: "none"
-
-   firefox-macosx64:
-      description: macosx64 update verify
-      shipping-product: firefox
-      attributes:
-         build_platform: macosx64
-      run:
-         product: firefox
-      worker:
-         properties:
-            platform: macosx64
-            CHANNEL:
-               by-project:
-                  jamun: "beta-localtest"
-                  maple: "beta-localtest"
-                  mozilla-beta: "beta-localtest"
-                  mozilla-release: "release-localtest"
-                  mozilla-esr52: "esr-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  jamun: "beta-firefox-macosx64.cfg"
-                  maple: "beta-firefox-macosx64.cfg"
-                  mozilla-beta: "beta-firefox-macosx64.cfg"
-                  mozilla-release: "release-firefox-macosx64.cfg"
-                  mozilla-esr52: "esr-firefox-macosx64.cfg"
-                  default: "none"
-
-   firefox-secondary-win64:
-      description: win64 secondary channel update verify
-      shipping-product: firefox
-      attributes:
-         build_platform: win64
-      run:
-         product: firefox
-      worker:
-         properties:
-            platform: win64
-            CHANNEL:
-               by-project:
-                  mozilla-release: "beta-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  mozilla-release: "beta-firefox-win64.cfg"
-                  default: "none"
-
-   firefox-secondary-win32:
-      description: win32 secondary channel update verify
-      shipping-product: firefox
-      attributes:
-         build_platform: win32
-      run:
-         product: firefox
-      worker:
-         properties:
-            platform: win32
-            CHANNEL:
-               by-project:
-                  mozilla-release: "beta-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  mozilla-release: "beta-firefox-win32.cfg"
-                  default: "none"
-
-   firefox-secondary-macosx64:
-      description: macosx64 secondary channel update verify
-      shipping-product: firefox
-      attributes:
-         build_platform: macosx64
-      run:
-         product: firefox
-      worker:
-         properties:
-            platform: macosx64
-            CHANNEL:
-               by-project:
-                  mozilla-release: "beta-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  mozilla-release: "beta-firefox-macosx64.cfg"
-                  default: "none"
-
-   devedition-win64:
-      description: win64 update verify
-      shipping-product: devedition
-      attributes:
-         build_platform: win64-devedition
-      run:
-         product: devedition
-      worker:
-         properties:
-            platform: win64
-            CHANNEL:
-               by-project:
-                  jamun: "aurora-localtest"
-                  maple: "aurora-localtest"
-                  mozilla-aurora: "aurora-localtest"
-                  mozilla-release: "release-localtest"
-                  mozilla-esr52: "esr-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  jamun: "aurora-devedition-win64.cfg"
-                  maple: "aurora-devedition-win64.cfg"
-                  mozilla-aurora: "aurora-devedition-win64.cfg"
-                  mozilla-release: "release-devedition-win64.cfg"
-                  mozilla-esr52: "esr-devedition-win64.cfg"
-                  default: "none"
-
-   devedition-win32:
-      description: win32 update verify
-      shipping-product: devedition
-      attributes:
-         build_platform: win32-devedition
-      run:
-         product: devedition
-      worker:
-         properties:
-            platform: win32
-            CHANNEL:
-               by-project:
-                  jamun: "aurora-localtest"
-                  maple: "aurora-localtest"
-                  mozilla-aurora: "aurora-localtest"
-                  mozilla-release: "release-localtest"
-                  mozilla-esr52: "esr-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  jamun: "aurora-devedition-win32.cfg"
-                  maple: "aurora-devedition-win32.cfg"
-                  mozilla-aurora: "aurora-devedition-win32.cfg"
-                  mozilla-release: "release-devedition-win32.cfg"
-                  mozilla-esr52: "esr-devedition-win32.cfg"
-                  default: "none"
-
-   devedition-macosx64:
-      description: macosx64 update verify
-      shipping-product: devedition
-      attributes:
-         build_platform: macosx64-devedition
-      run:
-         product: devedition
-      worker:
-         properties:
-            platform: macosx64
-            CHANNEL:
-               by-project:
-                  jamun: "aurora-localtest"
-                  maple: "aurora-localtest"
-                  mozilla-aurora: "aurora-localtest"
-                  mozilla-release: "release-localtest"
-                  mozilla-esr52: "esr-localtest"
-                  default: "default"
-            VERIFY_CONFIG:
-               by-project:
-                  jamun: "aurora-devedition-macosx64.cfg"
-                  maple: "aurora-devedition-macosx64.cfg"
-                  mozilla-aurora: "aurora-devedition-macosx64.cfg"
-                  mozilla-release: "release-devedition-macosx64.cfg"
-                  mozilla-esr52: "esr-devedition-macosx64.cfg"
-                  default: "none"
--- a/taskcluster/ci/release-update-verify/kind.yml
+++ b/taskcluster/ci/release-update-verify/kind.yml
@@ -132,16 +132,103 @@ jobs:
       treeherder:
          symbol: UV
          platform: linux/opt
          kind: test
          tier: 1
       attributes:
          build_platform: linux
 
+   firefox-win64:
+      description: win64 update verify
+      shipping-product: firefox
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  jamun: "beta-localtest"
+                  maple: "beta-localtest"
+                  mozilla-beta: "beta-localtest"
+                  mozilla-release: "release-localtest"
+                  mozilla-esr52: "esr-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  jamun: "beta-firefox-win64.cfg"
+                  maple: "beta-firefox-win64.cfg"
+                  mozilla-beta: "beta-firefox-win64.cfg"
+                  mozilla-release: "release-firefox-win64.cfg"
+                  mozilla-esr52: "esr-firefox-win64.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UV
+         platform: win64/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: win64
+
+   firefox-win32:
+      description: win32 update verify
+      shipping-product: firefox
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  jamun: "beta-localtest"
+                  maple: "beta-localtest"
+                  mozilla-beta: "beta-localtest"
+                  mozilla-release: "release-localtest"
+                  mozilla-esr52: "esr-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  jamun: "beta-firefox-win32.cfg"
+                  maple: "beta-firefox-win32.cfg"
+                  mozilla-beta: "beta-firefox-win32.cfg"
+                  mozilla-release: "release-firefox-win32.cfg"
+                  mozilla-esr52: "esr-firefox-win32.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UV
+         platform: win32/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: win32
+
+   firefox-macosx64:
+      description: macosx64 update verify
+      shipping-product: firefox
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  jamun: "beta-localtest"
+                  maple: "beta-localtest"
+                  mozilla-beta: "beta-localtest"
+                  mozilla-release: "release-localtest"
+                  mozilla-esr52: "esr-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  jamun: "beta-firefox-macosx64.cfg"
+                  maple: "beta-firefox-macosx64.cfg"
+                  mozilla-beta: "beta-firefox-macosx64.cfg"
+                  mozilla-release: "release-firefox-macosx64.cfg"
+                  mozilla-esr52: "esr-firefox-macosx64.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UV
+         platform: macosx64/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: macosx64
+
    firefox-secondary-linux64:
       description: linux64 secondary channel update verify
       shipping-product: firefox
       worker:
          env:
             CHANNEL:
                by-project:
                   mozilla-release: "beta-localtest"
@@ -174,16 +261,79 @@ jobs:
       treeherder:
          symbol: UVS
          platform: linux/opt
          kind: test
          tier: 1
       attributes:
          build_platform: linux
 
+   firefox-secondary-win64:
+      description: win64 secondary channel update verify
+      shipping-product: firefox
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  mozilla-release: "beta-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  mozilla-release: "beta-firefox-win64.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UVS
+         platform: win64/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: win64
+
+   firefox-secondary-win32:
+      description: win32 secondary channel update verify
+      shipping-product: firefox
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  mozilla-release: "beta-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  mozilla-release: "beta-firefox-win32.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UVS
+         platform: win32/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: win32
+
+   firefox-secondary-macosx64:
+      description: macosx64 secondary channel update verify
+      shipping-product: firefox
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  mozilla-release: "beta-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  mozilla-release: "beta-firefox-macosx64.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UVS
+         platform: macosx64/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: macosx64
+
    devedition-linux64:
       description: linux64 update verify
       shipping-product: devedition
       worker:
          env:
             CHANNEL:
                by-project:
                   jamun: "aurora-localtest"
@@ -231,8 +381,95 @@ jobs:
                   default: "none"
       treeherder:
          symbol: UV
          platform: linux-devedition/opt
          kind: test
          tier: 1
       attributes:
          build_platform: linux-devedition
+
+   devedition-win64:
+      description: win64 update verify
+      shipping-product: devedition
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  jamun: "aurora-localtest"
+                  maple: "aurora-localtest"
+                  mozilla-aurora: "aurora-localtest"
+                  mozilla-release: "release-localtest"
+                  mozilla-esr52: "esr-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  jamun: "aurora-devedition-win64.cfg"
+                  maple: "aurora-devedition-win64.cfg"
+                  mozilla-aurora: "aurora-devedition-win64.cfg"
+                  mozilla-release: "release-devedition-win64.cfg"
+                  mozilla-esr52: "esr-devedition-win64.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UV
+         platform: win64-devedition/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: win64-devedition
+
+   devedition-win32:
+      description: win32 update verify
+      shipping-product: devedition
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  jamun: "aurora-localtest"
+                  maple: "aurora-localtest"
+                  mozilla-aurora: "aurora-localtest"
+                  mozilla-release: "release-localtest"
+                  mozilla-esr52: "esr-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  jamun: "aurora-devedition-win32.cfg"
+                  maple: "aurora-devedition-win32.cfg"
+                  mozilla-aurora: "aurora-devedition-win32.cfg"
+                  mozilla-release: "release-devedition-win32.cfg"
+                  mozilla-esr52: "esr-devedition-win32.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UV
+         platform: win32-devedition/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: win32-devedition
+
+   devedition-macosx64:
+      description: macosx64 update verify
+      shipping-product: devedition
+      worker:
+         env:
+            CHANNEL:
+               by-project:
+                  jamun: "aurora-localtest"
+                  maple: "aurora-localtest"
+                  mozilla-aurora: "aurora-localtest"
+                  mozilla-release: "release-localtest"
+                  mozilla-esr52: "esr-localtest"
+                  default: "default"
+            VERIFY_CONFIG:
+               by-project:
+                  jamun: "aurora-devedition-macosx64.cfg"
+                  maple: "aurora-devedition-macosx64.cfg"
+                  mozilla-aurora: "aurora-devedition-macosx64.cfg"
+                  mozilla-release: "release-devedition-macosx64.cfg"
+                  mozilla-esr52: "esr-devedition-macosx64.cfg"
+                  default: "none"
+      treeherder:
+         symbol: UV
+         platform: macosx64-devedition/opt
+         kind: test
+         tier: 1
+      attributes:
+         build_platform: macosx64-devedition
--- a/taskcluster/ci/release-updates-builder/kind.yml
+++ b/taskcluster/ci/release-updates-builder/kind.yml
@@ -20,16 +20,17 @@ job-defaults:
    shipping-phase: promote
    worker-type: buildbot-bridge/buildbot-bridge
    run:
       using: buildbot
       release-promotion: true
    worker:
       properties:
          platforms: "linux,linux64,macosx64,win32,win64"
+         updater_platform: "linux64"
    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"]
--- a/taskcluster/docs/kinds.rst
+++ b/taskcluster/docs/kinds.rst
@@ -277,20 +277,16 @@ Verifies the contents and package of rel
 release-secondary-final-verify
 ---------------------
 Verifies the contents and package of release update MARs.
 
 release-update-verify
 ---------------------
 Verifies the contents and package of release update MARs.
 
-release-buildbot-update-verify
----------------------
-Verifies the contents and package of release update MARs.
-
 release-updates-builder
 -----------------------
 Top level Balrog blob submission & patcher/update verify config updates.
 
 release-uptake-monitoring
 -------------------------
 Run uptake monitoring for releases.
 
deleted file mode 100644
--- a/taskcluster/taskgraph/transforms/buildbot_update_verify.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# 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 beetmover task into an actual task description.
-"""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
-from copy import deepcopy
-
-from taskgraph.transforms.base import TransformSequence
-from taskgraph.util.schema import resolve_keyed_by
-from taskgraph.util.scriptworker import get_release_config
-
-transforms = TransformSequence()
-
-
-@transforms.add
-def add_command(config, tasks):
-    for task in tasks:
-        release_config = get_release_config(config)
-        total_chunks = task["extra"]["chunks"]
-        platform = task["attributes"]["build_platform"]
-        # We git rid of -devedition (if it exists here) because we're
-        # only using this in the buildername, and buildbot doesn't use
-        # -devedition.
-        platform = platform.replace('-devedition', '')
-        product = task["shipping-product"]
-        buildername = "release-{branch}_" + product + "_" + platform + \
-            "_update_verify"
-        release_tag = "{}_{}_RELEASE_RUNTIME".format(
-            task["shipping-product"].upper(),
-            release_config["version"].replace(".", "_")
-        )
-
-        for this_chunk in range(1, total_chunks+1):
-            chunked = deepcopy(task)
-            chunked["scopes"] = [
-                "project:releng:buildbot-bridge:builder-name:{}".format(
-                    # In scopes, "branch" is called "project"
-                    buildername.replace("branch", "project")
-                )
-            ]
-            chunked["label"] = "release-update-verify-{}-{}/{}".format(
-                chunked["name"], this_chunk, total_chunks
-            )
-            chunked["run"]["buildername"] = buildername
-            chunked.setdefault("worker", {}).setdefault("properties", {})
-            chunked["worker"]["properties"]["script_repo_revision"] = \
-                release_tag
-            chunked["worker"]["properties"]["THIS_CHUNK"] = str(this_chunk)
-            chunked["worker"]["properties"]["TOTAL_CHUNKS"] = str(total_chunks)
-            for thing in ("CHANNEL", "VERIFY_CONFIG"):
-                thing = "worker.properties.{}".format(thing)
-                resolve_keyed_by(chunked, thing, thing, **config.params)
-            yield chunked
--- a/testing/mozharness/scripts/release/updates.py
+++ b/testing/mozharness/scripts/release/updates.py
@@ -90,17 +90,17 @@ class UpdatesBumper(MercurialScript, Bui
         self.read_buildbot_config()
         if not self.buildbot_config:
             self.warning("Skipping buildbot properties overrides")
             return
         # TODO: version and appVersion should come from repo
         props = self.buildbot_config["properties"]
         for prop in ['product', 'version', 'build_number', 'revision',
                      'appVersion', 'balrog_api_root', "channels",
-                     'generate_bz2_blob']:
+                     'generate_bz2_blob', 'updater_platform']:
             if props.get(prop):
                 self.info("Overriding %s with %s" % (prop, props[prop]))
                 self.config[prop] = props.get(prop)
 
         partials = [v.strip() for v in props["partial_versions"].split(",")]
         self.config["partial_versions"] = [v.split("build") for v in partials]
         self.config["platforms"] = [p.strip() for p in
                                     props["platforms"].split(",")]
@@ -248,16 +248,18 @@ class UpdatesBumper(MercurialScript, Bui
                 "--previous-archive-prefix",
                 self.config["previous_archive_prefix"],
                 "--product", patcher_config_product,
                 "--balrog-url", self.config["balrog_url"],
                 "--build-number", str(self.config["build_number"]),
             ])
             if "stage_product" in self.config:
                 cmd.extend(["--stage-product", self.config["stage_product"]])
+            if "updater_platform" in self.config:
+                cmd.extend(["--updater-platform", self.config["updater_platform"]])
 
             self.run_command(cmd, halt_on_failure=True)
 
     def tag(self):
         dirs = self.query_abs_dirs()
         tags = ["{product}_{version}_BUILD{build_number}_RUNTIME",
                 "{product}_{version}_RELEASE_RUNTIME"]
         tags = [t.format(product=self.config["product"].upper(),