Bug 1365590 - Pass --stage-product to patcher config bumper r=bhearsum a=release
authorRail Aliiev <rail@mozilla.com>
Wed, 24 May 2017 08:26:50 -0400
changeset 396388 b3b1b2125fc0b242026a926b1db8c7f23330cc99
parent 396387 c58deb31c649510a264a7593359da8b910b01141
child 396389 f7c942b561d57638df5c1c2542dd3d946dc71907
push id1468
push userasasaki@mozilla.com
push dateMon, 05 Jun 2017 19:31:07 +0000
treeherdermozilla-release@0641fc6ee9d1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbhearsum, release
bugs1365590
milestone54.0
Bug 1365590 - Pass --stage-product to patcher config bumper r=bhearsum a=release MozReview-Commit-ID: 8FKkuxqinfG
testing/mozharness/configs/releases/updates_firefox_devedition.py
testing/mozharness/scripts/release/updates.py
--- a/testing/mozharness/configs/releases/updates_firefox_devedition.py
+++ b/testing/mozharness/configs/releases/updates_firefox_devedition.py
@@ -19,17 +19,22 @@ config = {
     "download_domain": "download.mozilla.org",
     "balrog_url": "https://aus5.mozilla.org",
     "balrog_username": "ffxbld",
     "update_channels": {
         "aurora": {
             "version_regex": r"^.*$",
             "requires_mirrors": True,
             "patcher_config": "mozDevedition-branch-patcher2.cfg",
+            # Allow to override the patcher config product name, regardless
+            # the value set by buildbot properties
+            "patcher_config_product_override": "firefox",
             "update_verify_channel": "aurora-localtest",
             "mar_channel_ids": [],
             "channel_names": ["aurora", "aurora-localtest", "aurora-cdntest"],
             "rules_to_update": ["devedition-cdntest", "devedition-localtest"],
             "publish_rules": ["devedition"],
         },
     },
     "balrog_use_dummy_suffix": False,
+    "stage_product": "devedition",
+    "bouncer_product": "devedition",
 }
--- a/testing/mozharness/scripts/release/updates.py
+++ b/testing/mozharness/scripts/release/updates.py
@@ -173,16 +173,20 @@ class UpdatesBumper(MercurialScript, Bui
 
     def query_patcher_config(self, channel_config):
         dirs = self.query_abs_dirs()
         patcher_config = os.path.join(
             dirs["abs_tools_dir"], "release/patcher-configs",
             channel_config["patcher_config"])
         return patcher_config
 
+    def query_patcher_config_product(self, channel_config):
+        return channel_config.get("patcher_config_product_override") or \
+            self.config["product"]
+
     def query_update_verify_config(self, channel, platform):
         dirs = self.query_abs_dirs()
         uvc = os.path.join(
             dirs["abs_tools_dir"], "release/updates",
             "{}-{}-{}.cfg".format(channel, self.config["product"], platform))
         return uvc
 
     def bump_patcher_config(self, channel_config):
@@ -191,60 +195,68 @@ class UpdatesBumper(MercurialScript, Bui
         # from tasks.
         dirs = self.query_abs_dirs()
         env = {"PERL5LIB": os.path.join(dirs["abs_tools_dir"], "lib/perl")}
         partial_versions = [v[0] for v in
                             self.query_matching_partials(channel_config)]
         script = os.path.join(
             dirs["abs_tools_dir"], "release/patcher-config-bump.pl")
         patcher_config = self.query_patcher_config(channel_config)
+        patcher_config_product = self.query_patcher_config_product(channel_config)
         cmd = [self.query_exe("perl"), script]
         cmd.extend([
-            "-p", self.config["product"],
-            "-r", self.config["product"].capitalize(),
+            "-p", patcher_config_product,
+            "-r", patcher_config_product.capitalize(),
             "-v", self.config["version"],
             "-a", self.config["appVersion"],
             "-o", get_previous_version(
                 self.config["version"], partial_versions),
             "-b", str(self.config["build_number"]),
             "-c", patcher_config,
             "-f", self.config["archive_domain"],
             "-d", self.config["download_domain"],
             "-l", self.query_shipped_locales_path(),
         ])
         for v in partial_versions:
             cmd.extend(["--partial-version", v])
         for p in self.config["platforms"]:
             cmd.extend(["--platform", p])
         for mar_channel_id in channel_config["mar_channel_ids"]:
             cmd.extend(["--mar-channel-id", mar_channel_id])
+        if "stage_product" in self.config:
+            cmd.extend(["--stage-product", self.config["stage_product"]])
+        if "bouncer_product" in self.config:
+            cmd.extend(["--bouncer-product", self.config["bouncer_product"]])
         self.run_command(cmd, halt_on_failure=True, env=env)
 
     def bump_update_verify_configs(self, channel, channel_config):
         dirs = self.query_abs_dirs()
         script = os.path.join(
             dirs["abs_tools_dir"],
             "scripts/build-promotion/create-update-verify-config.py")
         patcher_config = self.query_patcher_config(channel_config)
+        patcher_config_product = self.query_patcher_config_product(channel_config)
         for platform in self.config["platforms"]:
             cmd = [self.query_exe("python"), script]
             output = self.query_update_verify_config(channel, platform)
             cmd.extend([
                 "--config", patcher_config,
                 "--platform", platform,
                 "--update-verify-channel",
                 channel_config["update_verify_channel"],
                 "--output", output,
                 "--archive-prefix", self.config["archive_prefix"],
                 "--previous-archive-prefix",
                 self.config["previous_archive_prefix"],
-                "--product", self.config["product"],
+                "--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"]])
 
             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(),