diff --git a/browser/config/mozconfigs/linux32/devedition b/browser/config/mozconfigs/linux32/devedition index a43fe9a0c4ca..93e6acafe7b6 100644 --- a/browser/config/mozconfigs/linux32/devedition +++ b/browser/config/mozconfigs/linux32/devedition @@ -1,3 +1,8 @@ +if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then + MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1} + MOZ_AUTOMATION_UPDATE_PACKAGING=1 +fi + . "$topsrcdir/browser/config/mozconfigs/linux32/common-opt" # Add-on signing is not required for DevEdition diff --git a/browser/config/mozconfigs/linux64/devedition b/browser/config/mozconfigs/linux64/devedition index 7a69a65c619d..f38d2a4e95b4 100644 --- a/browser/config/mozconfigs/linux64/devedition +++ b/browser/config/mozconfigs/linux64/devedition @@ -1,3 +1,8 @@ +if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then + MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1} + MOZ_AUTOMATION_UPDATE_PACKAGING=1 +fi + . "$topsrcdir/browser/config/mozconfigs/linux64/common-opt" # Add-on signing is not required for DevEdition diff --git a/browser/config/mozconfigs/macosx64/devedition b/browser/config/mozconfigs/macosx64/devedition index f1053a61ed27..dcbf59b094c2 100644 --- a/browser/config/mozconfigs/macosx64/devedition +++ b/browser/config/mozconfigs/macosx64/devedition @@ -1,3 +1,8 @@ +if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then + MOZ_AUTOMATION_UPLOAD_SYMBOLS=1 + MOZ_AUTOMATION_UPDATE_PACKAGING=1 +fi + . "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt" # Add-on signing is not required for DevEdition diff --git a/browser/config/mozconfigs/win32/devedition b/browser/config/mozconfigs/win32/devedition index 66176f5db795..3555f42888c4 100644 --- a/browser/config/mozconfigs/win32/devedition +++ b/browser/config/mozconfigs/win32/devedition @@ -1,3 +1,8 @@ +if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then + MOZ_AUTOMATION_UPLOAD_SYMBOLS=1 + MOZ_AUTOMATION_UPDATE_PACKAGING=1 +fi + . "$topsrcdir/build/mozconfig.win-common" . "$topsrcdir/browser/config/mozconfigs/win32/common-opt" diff --git a/browser/config/mozconfigs/win64/devedition b/browser/config/mozconfigs/win64/devedition index 8b3b774fbf44..7de0932c4639 100644 --- a/browser/config/mozconfigs/win64/devedition +++ b/browser/config/mozconfigs/win64/devedition @@ -1,3 +1,8 @@ +if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then + MOZ_AUTOMATION_UPLOAD_SYMBOLS=1 + MOZ_AUTOMATION_UPDATE_PACKAGING=1 +fi + . "$topsrcdir/build/mozconfig.win-common" . "$topsrcdir/browser/config/mozconfigs/win64/common-win64" . "$topsrcdir/browser/config/mozconfigs/win64/common-opt" diff --git a/browser/confvars.sh b/browser/confvars.sh index f05d979d4bb5..eee56580c90b 100755 --- a/browser/confvars.sh +++ b/browser/confvars.sh @@ -18,6 +18,7 @@ if test "$OS_ARCH" = "WINNT"; then if ! test "$HAVE_64BIT_BUILD"; then if test "$MOZ_UPDATE_CHANNEL" = "nightly" -o \ "$MOZ_UPDATE_CHANNEL" = "aurora" -o \ + "$MOZ_UPDATE_CHANNEL" = "aurora-dev" -o \ "$MOZ_UPDATE_CHANNEL" = "beta" -o \ "$MOZ_UPDATE_CHANNEL" = "beta-dev" -o \ "$MOZ_UPDATE_CHANNEL" = "release" -o \ diff --git a/taskcluster/ci/build/linux.yml b/taskcluster/ci/build/linux.yml index 84a233d2f829..b36c57f52fc1 100644 --- a/taskcluster/ci/build/linux.yml +++ b/taskcluster/ci/build/linux.yml @@ -70,14 +70,17 @@ linux64/debug: tooltool-downloads: public need-xvfb: true -linux64-devedition/opt: - description: "Linux64 devedition Opt" +linux64-devedition-nightly/opt: + description: "Linux64 devedition Nightly" + attributes: + nightly: true index: product: devedition job-name: linux64-opt + type: nightly treeherder: platform: linux64-devedition/opt - symbol: tc(B) + symbol: tc(N) worker-type: aws-provisioner-v1/gecko-{level}-b-linux worker: implementation: docker-worker @@ -87,6 +90,7 @@ linux64-devedition/opt: actions: [get-secrets build generate-build-stats check-test update] config: - builds/releng_base_linux_64_builds.py + - disable_signing.py - balrog/production.py script: "mozharness/scripts/fx_desktop_build.py" secrets: true @@ -169,14 +173,17 @@ linux/pgo: tooltool-downloads: public need-xvfb: true -linux-devedition/opt: - description: "Linux32 devedition Opt" +linux-devedition-nightly/opt: + description: "Linux32 devedition Nightly" + attributes: + nightly: true index: product: devedition job-name: linux-opt + type: nightly treeherder: platform: linux32-devedition/opt - symbol: tc(B) + symbol: tc(N) worker-type: aws-provisioner-v1/gecko-{level}-b-linux worker: implementation: docker-worker @@ -186,6 +193,7 @@ linux-devedition/opt: actions: [get-secrets build generate-build-stats check-test update] config: - builds/releng_base_linux_32_builds.py + - disable_signing.py - balrog/production.py script: "mozharness/scripts/fx_desktop_build.py" secrets: true diff --git a/taskcluster/taskgraph/transforms/beetmover.py b/taskcluster/taskgraph/transforms/beetmover.py index f8652c68a0bc..d086cdfc0a11 100644 --- a/taskcluster/taskgraph/transforms/beetmover.py +++ b/taskcluster/taskgraph/transforms/beetmover.py @@ -103,6 +103,8 @@ _MOBILE_UPSTREAM_ARTIFACTS_SIGNED_MULTI = [ UPSTREAM_ARTIFACT_UNSIGNED_PATHS = { 'linux64-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US, 'linux-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US, + 'linux64-devedition-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US, + 'linux-devedition-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US, 'android-x86-nightly': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US, 'android-api-15-nightly': _MOBILE_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US, 'macosx64-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_UNSIGNED_EN_US, @@ -123,6 +125,14 @@ UPSTREAM_ARTIFACT_SIGNED_PATHS = { "target.tar.bz2", "target.tar.bz2.asc", ], + 'linux64-devedition-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_EN_US + [ + "target.tar.bz2", + "target.tar.bz2.asc", + ], + 'linux-devedition-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_EN_US + [ + "target.tar.bz2", + "target.tar.bz2.asc", + ], 'android-x86-nightly': ["en-US/target.apk"], 'android-api-15-nightly': ["en-US/target.apk"], 'macosx64-nightly': _DESKTOP_UPSTREAM_ARTIFACTS_SIGNED_EN_US + [ diff --git a/taskcluster/taskgraph/transforms/signing.py b/taskcluster/taskgraph/transforms/signing.py index 59a5f0d1e8a8..750c9d287a6c 100644 --- a/taskcluster/taskgraph/transforms/signing.py +++ b/taskcluster/taskgraph/transforms/signing.py @@ -9,7 +9,7 @@ from __future__ import absolute_import, print_function, unicode_literals from taskgraph.transforms.base import TransformSequence from taskgraph.util.schema import validate_schema, Schema -from taskgraph.util.scriptworker import get_signing_cert_scope +from taskgraph.util.scriptworker import get_signing_cert_scope, get_devedition_signing_cert_scope from taskgraph.transforms.task import task_description_schema from voluptuous import Any, Required, Optional @@ -106,7 +106,14 @@ def make_task_description(config, jobs): # Used for l10n attribute passthrough attributes['chunk_locales'] = dep_job.attributes.get('chunk_locales') - signing_cert_scope = get_signing_cert_scope(config) + # This code wasn't originally written with the possibility of using different + # signing cert scopes for different platforms on the same branch. This isn't + # ideal, but it's what we currently have to make this possible. + if dep_job.attributes.get('build_platform') in set(['linux64-devedition-nightly', 'linux-devedition-nightly']): + signing_cert_scope = get_devedition_signing_cert_scope(config) + else: + signing_cert_scope = get_signing_cert_scope(config) + task = { 'label': label, 'description': "{} Signing".format( diff --git a/taskcluster/taskgraph/util/scriptworker.py b/taskcluster/taskgraph/util/scriptworker.py index 2009bfaa1f35..26c889e47875 100644 --- a/taskcluster/taskgraph/util/scriptworker.py +++ b/taskcluster/taskgraph/util/scriptworker.py @@ -24,7 +24,12 @@ VERSION_PATH = os.path.join(GECKO, "browser", "config", "version_display.txt") """Map signing scope aliases to sets of projects. -Currently m-c and m-a use nightly signing; m-b and m-r use release signing. +Currently m-c and DevEdition on m-b use nightly signing; Beta on m-b and m-r +use release signing. These data structures aren't set-up to handle different +scopes on the same repo, so we use a different set of them for DevEdition, and +callers are responsible for using the correct one (by calling the appropriate +helper below). More context on this in https://bugzilla.mozilla.org/show_bug.cgi?id=1358601. + We will need to add esr support at some point. Eventually we want to add nuance so certain m-b and m-r tasks use dep or nightly signing, and we only release sign when we have a signed-off set of candidate builds. This current @@ -52,6 +57,17 @@ SIGNING_CERT_SCOPES = { 'default': 'project:releng:signing:cert:dep-signing', } +DEVEDITION_SIGNING_SCOPE_ALIAS_TO_PROJECT = [[ + 'beta', set([ + 'mozilla-beta', + ]) +]] + +DEVEDITION_SIGNING_CERT_SCOPES = { + 'beta': 'project:releng:signing:cert:nightly-signing', + 'default': 'project:releng:signing:cert:dep-signing', +} + """Map beetmover scope aliases to sets of projects. """ BEETMOVER_SCOPE_ALIAS_TO_PROJECT = [[ @@ -314,6 +330,12 @@ get_signing_cert_scope = functools.partial( SIGNING_CERT_SCOPES ) +get_devedition_signing_cert_scope = functools.partial( + get_scope_from_project, + DEVEDITION_SIGNING_SCOPE_ALIAS_TO_PROJECT, + DEVEDITION_SIGNING_CERT_SCOPES +) + get_beetmover_bucket_scope = functools.partial( get_scope_from_target_method_and_project, BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK, diff --git a/testing/mozharness/configs/builds/branch_specifics.py b/testing/mozharness/configs/builds/branch_specifics.py index 6195940d99e9..e0759c18d748 100644 --- a/testing/mozharness/configs/builds/branch_specifics.py +++ b/testing/mozharness/configs/builds/branch_specifics.py @@ -322,6 +322,21 @@ config = { 'win64-debug': { 'update_channel': 'default', }, + 'linux-devedition': { + "update_channel": "aurora-dev", + }, + 'linux64-devedition': { + "update_channel": "aurora-dev", + }, + 'macosx64-devedition': { + "update_channel": "aurora-dev", + }, + 'win32-devedition': { + "update_channel": "aurora-dev", + }, + 'win64-devedition': { + "update_channel": "aurora-dev", + }, }, 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net', },