Bug 1457090 - add esr60 fixes in automation. r=aki a=release
authorMihai Tabara <mtabara@mozilla.com>
Thu, 26 Apr 2018 01:29:09 +0300
changeset 449217 28107b91f58a5f0a274f1508cb400337871ea875
parent 449214 b5cde4c8b05ab041c84eab81799ff07fe57cb329
child 449218 20f7c54a2dd6a1b013338fe4d228729c84d5d92f
push id6
push userryanvm@gmail.com
push dateSat, 28 Apr 2018 16:51:45 +0000
treeherdermozilla-esr60@91d3402ec1c8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersaki, release
bugs1457090
milestone60.0
Bug 1457090 - add esr60 fixes in automation. r=aki a=release
taskcluster/ci/config.yml
taskcluster/ci/release-beetmover-signed-langpacks/kind.yml
taskcluster/ci/release-bouncer-aliases/kind.yml
taskcluster/ci/release-bouncer-check/kind.yml
taskcluster/ci/release-generate-checksums-beetmover/kind.yml
taskcluster/ci/release-sign-and-push-langpacks/kind.yml
taskcluster/taskgraph/transforms/balrog_submit.py
taskcluster/taskgraph/transforms/partials_signing.py
testing/mozharness/configs/releases/dev_bouncer_firefox_esr.py
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -111,8 +111,16 @@ scriptworker:
         'scriptworker-prov-v1/beetmoverworker-dev':
             - 'project:releng:beetmover:bucket:dep'
             - 'project:releng:beetmover:bucket:dep-partner'
         'scriptworker-prov-v1/signing-linux-v1':
             - 'project:releng:signing:cert:release-signing'
             - 'project:releng:signing:cert:nightly-signing'
         'scriptworker-prov-v1/depsigning':
             - 'project:releng:signing:cert:dep-signing'
+        'scriptworker-prov-v1/balrogworker-v1':
+            - 'project:releng:balrog:server:nightly'
+            - 'project:releng:balrog:server:aurora'
+            - 'project:releng:balrog:server:beta'
+            - 'project:releng:balrog:server:release'
+            - 'project:releng:balrog:server:esr'
+        'scriptworker-prov-v1/balrog-dev':
+            - 'project:releng:balrog:server:dep'
--- a/taskcluster/ci/release-beetmover-signed-langpacks/kind.yml
+++ b/taskcluster/ci/release-beetmover-signed-langpacks/kind.yml
@@ -17,12 +17,13 @@ only-for-attributes:
    - nightly
 
 job-template:
    description: Beetmover submission for platform-independent langpacks {locales} in {platform} directory
    worker-type:
       by-project:
          mozilla-beta: scriptworker-prov-v1/beetmoverworker-v1
          mozilla-release: scriptworker-prov-v1/beetmoverworker-v1
+         mozilla-esr60: scriptworker-prov-v1/beetmoverworker-v1
          default: scriptworker-prov-v1/beetmoverworker-dev
    run-on-projects: []
    shipping-phase: promote
    shipping-product: firefox
--- a/taskcluster/ci/release-bouncer-aliases/kind.yml
+++ b/taskcluster/ci/release-bouncer-aliases/kind.yml
@@ -14,27 +14,31 @@ kind-dependencies:
    - release-bouncer-check
 
 job-defaults:
    description: Update bouncer aliases job
    worker-type:
       by-project:
          mozilla-beta: scriptworker-prov-v1/bouncer-v1
          mozilla-release: scriptworker-prov-v1/bouncer-v1
+         mozilla-esr60: scriptworker-prov-v1/bouncer-v1
          default: scriptworker-prov-v1/bouncer-dev
    worker:
       implementation: bouncer-aliases
    scopes:
       by-project:
          mozilla-beta:
             - project:releng:bouncer:action:aliases
             - project:releng:bouncer:server:production
          mozilla-release:
             - project:releng:bouncer:action:aliases
             - project:releng:bouncer:server:production
+         mozilla-esr60:
+            - project:releng:bouncer:action:aliases
+            - project:releng:bouncer:server:production
          default:
             - project:releng:bouncer:action:aliases
             - project:releng:bouncer:server:staging
    run-on-projects: []
    shipping-phase: ship
 
 jobs:
    devedition:
@@ -66,22 +70,22 @@ jobs:
                firefox-beta-latest: installer
                firefox-beta-stub: stub-installer
             mozilla-release:
                firefox-latest-ssl: installer-ssl
                firefox-latest: installer
                firefox-stub: stub-installer
             mozilla-esr60:
                firefox-esr-latest-ssl: installer-ssl
-               firefox-latest-ssl: installer
+               firefox-esr-latest: installer
             birch:
                firefox-latest-ssl: installer-ssl
                firefox-latest: installer
                firefox-stub: stub-installer
             jamun:
                firefox-esr-latest-ssl: installer-ssl
-               firefox-latest-ssl: installer
+               firefox-esr-latest: installer
             maple:
                firefox-beta-latest-ssl: installer-ssl
                firefox-beta-latest: installer
                firefox-beta-stub: stub-installer
             default: {}
       shipping-product: firefox
--- a/taskcluster/ci/release-bouncer-check/kind.yml
+++ b/taskcluster/ci/release-bouncer-check/kind.yml
@@ -38,20 +38,24 @@ jobs:
     firefox:
         shipping-product: firefox
         index:
             product: firefox
             job-name: firefox-bouncer-check
         run:
             config:
                 by-project:
+                    mozilla-beta:
+                        - releases/bouncer_firefox_beta.py
                     mozilla-release:
                         - releases/bouncer_firefox_release.py
-                    mozilla-beta:
-                        - releases/bouncer_firefox_beta.py
+                    mozilla-esr60:
+                        - releases/bouncer_firefox_esr.py
+                    jamun:
+                        - releases/dev_bouncer_firefox_esr.py
                     default:
                         - releases/dev_bouncer_firefox_beta.py
         treeherder:
             platform: linux64/opt
 
     devedition:
         shipping-product: devedition
         index:
--- a/taskcluster/ci/release-generate-checksums-beetmover/kind.yml
+++ b/taskcluster/ci/release-generate-checksums-beetmover/kind.yml
@@ -14,9 +14,10 @@ kind-dependencies:
 
 job-template:
    shipping-phase: promote
    worker-type:
       by-project:
          mozilla-central: scriptworker-prov-v1/beetmoverworker-v1
          mozilla-beta: scriptworker-prov-v1/beetmoverworker-v1
          mozilla-release: scriptworker-prov-v1/beetmoverworker-v1
+         mozilla-esr60: scriptworker-prov-v1/beetmoverworker-v1
          default: scriptworker-prov-v1/beetmoverworker-dev
--- a/taskcluster/ci/release-sign-and-push-langpacks/kind.yml
+++ b/taskcluster/ci/release-sign-and-push-langpacks/kind.yml
@@ -21,28 +21,31 @@ only-for-build-platforms:
 
 
 job-template:
    description: Signs {locales} XPIs for platform via addons.mozilla.org and pushes them
    worker-type:
       by-project:
          mozilla-beta: scriptworker-prov-v1/addon-v1
          mozilla-release: scriptworker-prov-v1/addon-v1
+         mozilla-esr60: scriptworker-prov-v1/addon-v1
          default: scriptworker-prov-v1/addon-dev
    worker:
       implementation: sign-and-push-addons
       channel:
          by-project:
             # Only release langpacks are listed publicly
             mozilla-release: listed
             default: unlisted
       upstream-artifacts:   # See transforms
    run-on-projects: []
    scopes:
       by-project:
          mozilla-beta:
             - project:releng:addons.mozilla.org:server:production
          mozilla-release:
             - project:releng:addons.mozilla.org:server:production
+         mozilla-esr60:
+            - project:releng:addons.mozilla.org:server:production
          default:
             - project:releng:addons.mozilla.org:server:staging
    shipping-phase: promote
    shipping-product: firefox
--- a/taskcluster/taskgraph/transforms/balrog_submit.py
+++ b/taskcluster/taskgraph/transforms/balrog_submit.py
@@ -5,16 +5,19 @@
 Transform the beetmover task into an actual task description.
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.schema import validate_schema, Schema
+from taskgraph.util.scriptworker import (
+    get_balrog_server_scope, get_worker_type_for_scope
+)
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Any, Required, Optional
 
 
 # Voluptuous uses marker objects as dictionary *keys*, but they are not
 # comparable, so we cast all of the keys back to regular strings
 task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()}
 
@@ -89,20 +92,22 @@ def make_task_description(config, jobs):
         upstream_artifacts = [{
             "taskId": {"task-reference": "<beetmover>"},
             "taskType": "beetmover",
             "paths": [
                 "public/manifest.json"
             ],
         }]
 
+        server_scope = get_balrog_server_scope(config)
+
         task = {
             'label': label,
             'description': description,
-            'worker-type': 'scriptworker-prov-v1/balrogworker-v1',
+            'worker-type': get_worker_type_for_scope(config, server_scope),
             'worker': {
                 'implementation': 'balrog',
                 'upstream-artifacts': upstream_artifacts,
                 'balrog-action': 'submit-locale',
             },
             'dependencies': {'beetmover': dep_job.label},
             'attributes': attributes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
--- a/taskcluster/taskgraph/transforms/partials_signing.py
+++ b/taskcluster/taskgraph/transforms/partials_signing.py
@@ -3,17 +3,20 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 """
 Transform the partials task into an actual task description.
 """
 from __future__ import absolute_import, print_function, unicode_literals
 
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
-from taskgraph.util.scriptworker import get_signing_cert_scope_per_platform
+from taskgraph.util.scriptworker import (
+    get_signing_cert_scope_per_platform,
+    get_worker_type_for_scope,
+)
 from taskgraph.util.partials import get_balrog_platform_name, get_partials_artifacts
 from taskgraph.util.taskcluster import get_artifact_prefix
 
 import logging
 logger = logging.getLogger(__name__)
 
 transforms = TransformSequence()
 
@@ -78,20 +81,20 @@ def make_task_description(config, jobs):
         signing_cert_scope = get_signing_cert_scope_per_platform(
             build_platform, is_nightly, config
         )
         scopes = [signing_cert_scope, 'project:releng:signing:format:mar_sha384']
         task = {
             'label': label,
             'description': "{} Partials".format(
                 dep_job.task["metadata"]["description"]),
-            'worker-type': 'scriptworker-prov-v1/signing-linux-v1',
+            'worker-type': get_worker_type_for_scope(config, signing_cert_scope),
             'worker': {'implementation': 'scriptworker-signing',
-                           'upstream-artifacts': upstream_artifacts,
-                           'max-run-time': 3600},
+                       'upstream-artifacts': upstream_artifacts,
+                       'max-run-time': 3600},
             'dependencies': dependencies,
             'attributes': attributes,
             'scopes': scopes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
         }
 
         yield task
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/releases/dev_bouncer_firefox_esr.py
@@ -0,0 +1,123 @@
+# lint_ignore=E501
+config = {
+    "shipped-locales-url": "https://hg.mozilla.org/%(repo)s/raw-file/%(revision)s/browser/locales/shipped-locales",
+    "bouncer_prefix": "https://bouncer-bouncer-releng.stage.mozaws.net/",
+    "products": {
+        "installer": {
+            "product-name": "Firefox-%(version)s",
+            "check_uptake": True,
+            "alias": "firefox-esr-latest",
+            "ssl-only": True,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/linux-i686/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/releases/%(version)s/linux-x86_64/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux64",
+                },
+                "macosx64": {
+                    "path": "/firefox/releases/%(version)s/mac/:lang/Firefox%%20%(version)s.dmg",
+                    "bouncer-platform": "osx",
+                },
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/win32/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/win64/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+        "installer-ssl": {
+            "product-name": "Firefox-%(version)s-SSL",
+            "check_uptake": True,
+            "alias": "firefox-esr-latest-ssl",
+            "ssl-only": True,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/linux-i686/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/releases/%(version)s/linux-x86_64/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux64",
+                },
+                "macosx64": {
+                    "path": "/firefox/releases/%(version)s/mac/:lang/Firefox%%20%(version)s.dmg",
+                    "bouncer-platform": "osx",
+                },
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/win32/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/win64/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+        "complete-mar": {
+            "product-name": "Firefox-%(version)s-Complete",
+            "check_uptake": True,
+            "ssl-only": False,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "linux64",
+                },
+                "macosx64": {
+                    "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "osx",
+                },
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/update/win64/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+    },
+    "partials": {
+        "releases-dir": {
+            "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
+            "check_uptake": True,
+            "ssl-only": False,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+                    "bouncer-platform": "linux64",
+                },
+                "macosx64": {
+                    "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+                    "bouncer-platform": "osx",
+                },
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/update/win64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+    },
+}