Bug 1471004 - use workerType aliases for signing. r=tomprince
authorAki Sasaki <asasaki@mozilla.com>
Wed, 01 May 2019 17:11:19 +0000
changeset 530969 6487aeb6617503c3343708613624f72388180046
parent 530968 64a0de86aa876d39b49985f947895620bbc99052
child 530970 984c175f86f98a22d6a56e40773f5e3f773a004a
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstomprince
bugs1471004
milestone68.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 1471004 - use workerType aliases for signing. r=tomprince Differential Revision: https://phabricator.services.mozilla.com/D27400
taskcluster/ci/config.yml
taskcluster/taskgraph/transforms/signing.py
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -201,20 +201,20 @@ release-promotion:
             is-rc: true
             target-tasks-method: ship_desktop
             partial-updates: true
 
 scriptworker:
     # See additional configuration in taskcluster/taskgraph/util/scriptworker.py
     scope-prefix: 'project:releng'
     worker-types:
-        'scriptworker-prov-v1/signing-linux-v1':
+        'linux-signing':
             - 'project:releng:signing:cert:release-signing'
             - 'project:releng:signing:cert:nightly-signing'
-        'scriptworker-prov-v1/depsigning':
+        'linux-depsigning':
             - 'project:releng:signing:cert:dep-signing'
         'scriptworker-prov-v1/beetmoverworker-v1':
             - 'project:releng:beetmover:bucket:release'
             - 'project:releng:beetmover:bucket:nightly'
             - 'project:releng:beetmover:bucket:partner'
             - 'project:releng:beetmover:bucket:maven-production'
         'scriptworker-prov-v1/beetmoverworker-dev':
             - 'project:releng:beetmover:bucket:dep'
@@ -283,16 +283,26 @@ workers:
             implementation: generic-worker
             os: windows
             worker-type: 'gecko-{level}-{alias}'
         images:
             provisioner: aws-provisioner-v1
             implementation: docker-worker
             os: linux
             worker-type: 'gecko-{level}-{alias}'
+        linux-depsigning:
+            provisioner: scriptworker-prov-v1
+            implementation: scriptworker-signing
+            os: linux
+            worker-type: depsigning
+        linux-signing:
+            provisioner: scriptworker-prov-v1
+            implementation: scriptworker-signing
+            os: linux
+            worker-type: signing-linux-v1
         t-ap.*:
             provisioner: proj-autophone
             implementation: script-engine-autophone
             os: linux
             worker-type: 'gecko-{alias}'
         t-bitbar-gw.*:
             provisioner: proj-autophone
             implementation: generic-worker
--- a/taskcluster/taskgraph/transforms/signing.py
+++ b/taskcluster/taskgraph/transforms/signing.py
@@ -85,24 +85,24 @@ def make_task_description(config, jobs):
                 formats.add(f)  # Add each format only once
         for format in formats:
             signing_format_scopes.append(
                 add_scope_prefix(config, 'signing:format:{}'.format(format))
             )
 
         is_nightly = dep_job.attributes.get(
             'nightly', dep_job.attributes.get('shippable', False))
+        build_platform = dep_job.attributes.get('build_platform')
         treeherder = None
         if 'partner' not in config.kind and 'eme-free' not in config.kind:
             treeherder = job.get('treeherder', {})
 
             dep_th_platform = dep_job.task.get('extra', {}).get(
                 'treeherder', {}).get('machine', {}).get('platform', '')
             build_type = dep_job.attributes.get('build_type')
-            build_platform = dep_job.attributes.get('build_platform')
             treeherder.setdefault('platform', _generate_treeherder_platform(
                 dep_th_platform, build_platform, build_type
             ))
 
             # ccov builds are tier 2, so they cannot have tier 1 tasks
             # depending on them.
             treeherder.setdefault(
                 'tier',
@@ -113,36 +113,37 @@ def make_task_description(config, jobs):
             ))
             treeherder.setdefault('kind', 'build')
 
         label = job['label']
         description = (
             "Initial Signing for locale '{locale}' for build '"
             "{build_platform}/{build_type}'".format(
                 locale=attributes.get('locale', 'en-US'),
-                build_platform=attributes.get('build_platform'),
+                build_platform=build_platform,
                 build_type=attributes.get('build_type')
             )
         )
 
         attributes = copy_attributes_from_dependent_job(dep_job)
         attributes['signed'] = True
 
         if dep_job.attributes.get('chunk_locales'):
             # Used for l10n attribute passthrough
             attributes['chunk_locales'] = dep_job.attributes.get('chunk_locales')
 
         signing_cert_scope = get_signing_cert_scope_per_platform(
-            dep_job.attributes.get('build_platform'), is_nightly, config
+            build_platform, is_nightly, config
         )
+        worker_type = get_worker_type_for_scope(config, signing_cert_scope)
 
         task = {
             'label': label,
             'description': description,
-            'worker-type': get_worker_type_for_scope(config, signing_cert_scope),
+            'worker-type': worker_type,
             'worker': {'implementation': 'scriptworker-signing',
                        'upstream-artifacts': job['upstream-artifacts'],
                        'max-run-time': job.get('max-run-time', 3600)},
             'scopes': [signing_cert_scope] + signing_format_scopes,
             'dependencies': {job['depname']: dep_job.label},
             'attributes': attributes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'optimization': dep_job.optimization,