Bug 1481121: [release] Add support for generating bz2 balrog blobs; r=Callek
authorTom Prince <mozilla@hocat.ca>
Mon, 27 Aug 2018 13:21:30 -0600
changeset 491719 c284bcf486e6a7b5b450ea07c521073321fe4c91
parent 491718 8b061c70417b490d816e997741900dfdea137625
child 491720 84cc927e157cfd3f18a90e14d91aa924b40ebbcb
push id1815
push userffxbld-merge
push dateMon, 15 Oct 2018 10:40:45 +0000
treeherdermozilla-release@18d4c09e9378 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersCallek
bugs1481121
milestone63.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1481121: [release] Add support for generating bz2 balrog blobs; r=Callek Differential Revision: https://phabricator.services.mozilla.com/D4368
taskcluster/ci/release-balrog-scheduling/kind.yml
taskcluster/ci/release-balrog-submit-toplevel/kind.yml
taskcluster/taskgraph/transforms/task.py
--- a/taskcluster/ci/release-balrog-scheduling/kind.yml
+++ b/taskcluster/ci/release-balrog-scheduling/kind.yml
@@ -35,16 +35,33 @@ jobs:
                mozilla-release: [145]
                mozilla-esr60: [806]
                default: []
       treeherder:
          platform: firefox-release/opt
          symbol: Rel(BSFx)
          tier: 1
          kind: build
+   # FIXME: (Bug 1487172) This task should only run on esr60-like branches
+   firefox-bz2:
+      description: Schedule Firefox publishing in balrog (bz2)
+      name: release-firefox_schedule_publishing_in_balrog-bz2
+      shipping-product: firefox
+      worker:
+         product: firefox
+         publish-rules:
+            by-project:
+               mozilla-esr60: [521]
+               default: []
+         blob-suffix: -bz2
+      treeherder:
+         platform: firefox-release/opt
+         symbol: Rel(BSFx-bz2)
+         tier: 1
+         kind: build
    devedition:
       description: Schedule Devedition publishing in balrog
       name: release-devedition_schedule_publishing_in_balrog
       shipping-product: devedition
       worker:
          product: devedition
          publish-rules:
             by-project:
--- a/taskcluster/ci/release-balrog-submit-toplevel/kind.yml
+++ b/taskcluster/ci/release-balrog-submit-toplevel/kind.yml
@@ -65,16 +65,53 @@ jobs:
                default: []
          platforms: ["linux", "linux64", "macosx64", "win32", "win64"]
       treeherder:
          platform: firefox-release/opt
          symbol: Rel(BPFx)
          tier: 1
          kind: build
 
+   # FIXME: (Bug 1487172) This task should only run on esr60-like branches
+   firefox-bz2:
+      name: submit-toplevel-firefox-release-to-balrog-bz2
+      description: Submit toplevel Firefox release to balrog
+      shipping-product: firefox
+      worker:
+         product: firefox
+         archive-domain:
+            by-project:
+               mozilla-esr60: archive.mozilla.org
+               default: ftp.stage.mozaws.net
+         download-domain:
+            by-project:
+               mozilla-esr60: download.mozilla.org
+               default: download.mozilla.org
+         channel-names:
+            by-project:
+               mozilla-esr60: ["esr", "esr-localtest", "esr-cdntest"]
+               default: []
+         publish-rules:
+            by-project:
+               mozilla-esr60: [521]
+               default: []
+         rules-to-update:
+            by-project:
+               mozilla-esr60: ["esr52-cdntest", "esr52-localtest"]
+               default: []
+         platforms: ["linux", "linux64", "macosx64", "win32", "win64"]
+         blob-suffix: -bz2
+         complete-mar-filename-pattern: '%s-%s.bz2.complete.mar'
+         complete-mar-bouncer-product-pattern: '%s-%s-complete-bz2'
+      treeherder:
+         platform: firefox-release/opt
+         symbol: Rel(BPFx-bz2)
+         tier: 1
+         kind: build
+
    devedition:
       name: submit-toplevel-devedition-release-to-balrog
       description: submit toplevel Devedition release to balrog
       shipping-product: devedition
       worker:
          product: devedition
          archive-domain:
             by-project:
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -541,16 +541,19 @@ task_description_schema = Schema({
         Optional('platforms'): [basestring],
         Optional('release-eta'): basestring,
         Optional('channel-names'): optionally_keyed_by('project', [basestring]),
         Optional('require-mirrors'): bool,
         Optional('publish-rules'): optionally_keyed_by('project', [int]),
         Optional('rules-to-update'): optionally_keyed_by('project', [basestring]),
         Optional('archive-domain'): optionally_keyed_by('project', basestring),
         Optional('download-domain'): optionally_keyed_by('project', basestring),
+        Optional('blob-suffix'): basestring,
+        Optional('complete-mar-filename-pattern'): basestring,
+        Optional('complete-mar-bouncer-product-pattern'): basestring,
 
         # list of artifact URLs for the artifacts that should be beetmoved
         Optional('upstream-artifacts'): [{
             # taskId of the task with the artifact
             Required('taskId'): taskref_or_string,
 
             # type of signing task (for CoT)
             Required('taskType'): basestring,
@@ -1140,16 +1143,20 @@ def build_balrog_payload(config, task, t
                     worker, prop, task['description'],
                     **config.params
                 )
         task_def['payload'] = {
             'build_number': release_config['build_number'],
             'product': worker['product'],
             'version': release_config['version'],
         }
+        for prop in ('blob-suffix', 'complete-mar-filename-pattern',
+                     'complete-mar-bouncer-product-pattern'):
+            if prop in worker:
+                task_def['payload'][prop.replace('-', '_')] = worker[prop]
         if worker['balrog-action'] == 'submit-toplevel':
             task_def['payload'].update({
                 'app_version': release_config['appVersion'],
                 'archive_domain': worker['archive-domain'],
                 'channel_names': worker['channel-names'],
                 'download_domain': worker['download-domain'],
                 'partial_versions': release_config.get('partial_versions', ""),
                 'platforms': worker['platforms'],