Bug 1475510 - Add repackage-msi signing. r=aki

Differential Revision: https://phabricator.services.mozilla.com/D9336

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Justin Wood 2018-11-07 17:44:27 +00:00
parent 44f471f3a2
commit 68af823cae
4 changed files with 40 additions and 6 deletions

View File

@ -21,6 +21,7 @@ treeherder:
'M-sw-e10s': 'Mochitests with serviceworker redesign and e10s'
'M-V': 'Mochitests on Valgrind'
'MSI': 'Repack installers into MSIs'
'MSIs': 'Signing of Repacked installers of MSIs'
'R': 'Reftests'
'R-sw': 'Reftests with serviceworker redesign enabled'
'R-e10s': 'Reftests with e10s'

View File

@ -0,0 +1,21 @@
# 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.single_dep:loader
transforms:
- taskgraph.transforms.name_sanity:transforms
- taskgraph.transforms.repackage_signing:transforms
- taskgraph.transforms.task:transforms
kind-dependencies:
- repackage-msi
only-for-build-platforms:
- win32-nightly/opt
- win32-devedition-nightly/opt
- win32/opt
- win64-nightly/opt
- win64-devedition-nightly/opt
- win64/opt

View File

@ -461,6 +461,10 @@ repackage-msi
Repackage-msi takes the signed full installer and produces an msi installer (that wraps the full installer)
Using the ```./mach repackage``` command
repackage-signing-msi
---------------------
Repackage-signing-msi takes the repackaged msi installers and signs them.
repo-update
-----------
Repo-Update tasks are tasks that perform some action on the project repo itself,

View File

@ -40,6 +40,7 @@ SIGNING_FORMATS = {
'target.bz2.complete.mar': ["mar"],
"target.installer.exe": ["sha2signcode"],
"target.stub-installer.exe": ["sha2signcodestub"],
"target.installer.msi": ["sha2signcode"],
}
@ -58,6 +59,7 @@ def make_repackage_signing_description(config, jobs):
for job in jobs:
dep_job = job['primary-dependency']
attributes = copy_attributes_from_dependent_job(dep_job)
locale = attributes.get('locale', dep_job.attributes.get('locale'))
attributes['repackage_type'] = 'repackage-signing'
treeherder = job.get('treeherder', {})
@ -75,9 +77,19 @@ def make_repackage_signing_description(config, jobs):
)
treeherder.setdefault('kind', 'build')
if locale:
treeherder['symbol'] = 'rs({})'.format(locale)
if config.kind == 'repackage-signing-msi':
treeherder['symbol'] = 'MSIs({})'.format(locale or 'N')
label = job['label']
dependencies = {"repackage": dep_job.label}
dep_kind = dep_job.kind
if 'l10n' in dep_kind:
dep_kind = 'repackage'
dependencies = {dep_kind: dep_job.label}
signing_dependencies = dep_job.dependencies
# This is so we get the build task etc in our dependencies to
@ -85,10 +97,6 @@ def make_repackage_signing_description(config, jobs):
dependencies.update({k: v for k, v in signing_dependencies.items()
if k != 'docker-image'})
if dep_job.attributes.get('locale'):
treeherder['symbol'] = 'rs({})'.format(dep_job.attributes.get('locale'))
attributes['locale'] = dep_job.attributes.get('locale')
description = (
"Signing of repackaged artifacts for locale '{locale}' for build '"
"{build_platform}/{build_type}'".format(
@ -110,7 +118,7 @@ def make_repackage_signing_description(config, jobs):
basename = os.path.basename(artifact)
if basename in SIGNING_FORMATS:
upstream_artifacts.append({
"taskId": {"task-reference": "<repackage>"},
"taskId": {"task-reference": "<{}>".format(dep_kind)},
"taskType": "repackage",
"paths": [artifact],
"formats": SIGNING_FORMATS[os.path.basename(artifact)],