gecko-dev/taskcluster/ci/config.yml
Nick Thomas 5d6881468d Bug 1630809 - add initial support for partner attribution in release promotion r=aki
Renames the release_enable_partners parameter to release_enable_partner_repack, and adds release_enable_partner_attribution for attribution. This it to provide support for disabling them independently in main releases, and in respins.
Adds docs for attribution, update docs for repacks.
Hardwire values for the enable params for the respin flavors, other wise read from the input (defaulting to on in promotion, off otherwise).
Fixes up the rebuild-kinds for partner repacks so that they reflect the current set, although the top level may be all that is needed.

Differential Revision: https://phabricator.services.mozilla.com/D87727
2020-08-27 22:19:41 +00:00

638 lines
27 KiB
YAML

# 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/.
---
trust-domain: gecko
project-repo-param-prefix: ''
product-dir: 'browser'
treeherder:
group-names:
'cram': 'Cram tests'
'js-bench-sm': 'JavaScript shell benchmarks with Spidermonkey'
'js-bench-v8': 'JavaScript shell benchmarks with Google V8'
'node': 'Node tests'
'py2': 'Python 2 unit tests'
'py3': 'Python 3 unit tests'
'A': 'Android Gradle tests'
'Bpgo': 'Profile-guided optimization builds'
'Btime': 'Browsertime performance tests on Firefox'
'Btime-1proc': 'Browsertime performance tests on Firefox without e10s'
'Btime-wr-1proc': 'Browsertime performance tests on Firefox without e10s, with webrender enabled'
'Btime-fis': 'Browsertime performance tests on Firefox with fission enabled'
'Btime-Prof': 'Browsertime performance tests on Firefox with Gecko Profiling'
'Btime-Prof-wr': 'Browsertime performance tests on Firefox with Gecko Profiling, webrender enabled'
'Btime-Prof-1proc': 'Browsertime performance tests on Firefox with Gecko Profiling and without e10s'
'Btime-live': 'Browsertime performance tests on Firefox'
'Btime-live-fenix': 'Browsertime performance tests on Firefox'
'Btime-live-fenix-wr': 'Browsertime performance tests on Firefox with webrender enabled'
'Btime-live-ChR': 'Browsertime performance tests on Firefox'
'Btime-ChR': 'Browsertime performance tests on Google Chrome Release'
'Btime-Cr': 'Browsertime performance tests on Google Chromium'
'Btime-P': 'Browsertime power tests on Firefox'
'Btime-P-1proc': 'Browsertime power tests on Firefox without e10s'
'Btime-fenix': 'Browsertime performance tests on Fenix'
'Btime-fenix-wr': 'Browsertime performance tests on Fenix with webrender enabled'
'Btime-fennec': 'Browsertime performance tests on Fennec'
'Btime-fennec-1proc': 'Browsertime performance tests on Fennec without e10s'
'Btime-refbrow': 'Browsertime performance tests on the reference browser'
'Btime-refbrow-wr': 'Browsertime performance tests on the reference browser with webrender enabled'
'Btime-Prof-fenix': 'Browsertime performance tests on Fenix with Gecko Profiling'
'Btime-Prof-fennec': 'Browsertime performance tests on Fennec with Gecko Profiling'
'Btime-Prof-fennec-1proc': 'Browsertime performance tests on Fennec without e10s with Gecko Profiling'
'Btime-Prof-refbrow': 'Browsertime performance tests on the reference browser with Gecko Profiling'
'Btime-wr': 'Browsertime performance tests on Android with webrender enabled'
'Fetch': 'Fetch and store content'
'Fxfn-l': 'Firefox functional tests (local)'
'Fxfn-l-1proc': 'Firefox functional tests (local) without e10s'
'Fxfn-r': 'Firefox functional tests (remote)'
'Fxfn-r-1proc': 'Firefox functional tests (remote) without e10s'
'iris': 'Iris testing suite'
'l10n-bump': 'L10n Bumper'
'M': 'Mochitests'
'M-1proc': 'Mochitests without e10s'
'M-fis': 'Mochitests with fission enabled'
'M-fis-xorig': 'Mochitests with cross-origin and fission enabled'
'M-gli': 'Mochitests with WebGL over IPC'
'M-spi': 'Mochitests with socket process'
'M-spi-1proc': 'Mochitests with socket process without e10s'
'M-spi-nw': 'Mochitests with networking on socket process'
'M-spi-nw-1proc': 'Mochitests with networking on socket process without e10s'
'M-V-1proc': 'Mochitests on Valgrind without e10s'
'MSI': 'Repack installers into MSIs'
'MSIs': 'Signing of Repacked installers of MSIs'
'R': 'Reftests'
'R-1proc': 'Reftests without e10s'
'R-fis': 'Reftests with fission enabled'
'R-swr': 'Reftests with software webrender enabled'
'Rap': 'Raptor performance tests on Firefox'
'Rap-1proc': 'Raptor performance tests on Firefox without e10s'
'Rap-fis': 'Raptor performance tests on Firefox with fission enabled'
'Rap-Prof': 'Raptor performance tests on Firefox with Gecko Profiling'
'Rap-Prof-1proc': 'Raptor performance tests on Firefox with Gecko Profiling and without e10s'
'Rap-ChR': 'Raptor performance tests on Google Chrome Release'
'Rap-Cr': 'Raptor performance tests on Google Chromium'
'Rap-P': 'Raptor power tests on Firefox'
'Rap-P-1proc': 'Raptor power tests on Firefox without e10s'
'Rap-fenix': 'Raptor performance tests on Fenix'
'Rap-fennec': 'Raptor performance tests on Fennec'
'Rap-fennec-1proc': 'Raptor performance tests on Fennec without e10s'
'Rap-refbrow': 'Raptor performance tests on the reference browser'
'remote': 'Remote debugging protocol tests'
'T': 'Talos performance tests'
'T-1proc': 'Talos performance tests without e10s'
'T-fis': 'Talos performance tests with fission enabled'
'T-gli': 'Talos performance tests with WebGL over IPC'
'T-Prof': 'Talos performance tests on Firefox with Gecko Profiling'
'T-Prof-1proc': 'Talos performance tests on Firefox with Gecko Profiling and without e10s'
'T-Prof-fis': 'Talos performance tests on Firefox with fission and Gecko Profiling'
'T-Prof-gli': 'Talos performance tests with WebGL over IPC and Gecko Profiling'
'T-swr': 'Talos performance tests with software webrender enabled'
'Tss': 'Talos performance tests, Stylo sequential'
'Tss-fis': 'Talos performance tests, Stylo sequential with fission enabled'
'Tss-1proc': 'Talos performance tests with Stylo sequential without e10s'
'tt': 'Telemetry tests'
'tt-1proc': 'Telemetry tests without e10s'
'SY': 'Are we slim yet tests by TaskCluster'
'SY-fis': 'Are we slim yet tests by TaskCluster, fission enabled'
'VP': 'VideoPuppeteer tests'
'W': 'Web platform tests'
'W-1proc': 'Web platform tests without e10s'
'W-fis': 'Web platform tests with fission enabled'
'W-b': 'Web platform tests (backlog)'
'W-b-fis': 'Web platform tests (backlog) with fission enabled'
'X': 'Xpcshell tests'
'X-1proc': 'Xpcshell tests, without e10s'
'X-fis': 'Xpcshell tests with fission enabled'
'X-spi-nw': 'Xpcshell tests with networking on socket process'
'L10n': 'Localised Repacks'
'L10n-Rpk': 'Localized Repackaged Repacks'
'BM': 'Beetmover'
'BMR': 'Beetmover repackages'
'c-Up': 'Balrog submission of complete updates'
'cs': 'Checksum signing'
'css': 'Checksum signing for source'
'rs': 'Repackage signing'
'BMcs': 'Beetmover checksums'
'BMcslang': 'Beetmover checksums for language packs'
'BMcss': 'Beetmover checksums for source'
'Aries': 'Aries Device Image'
'Deb8': 'Packages for Debian 8'
'Deb8-32': 'Packages for Debian 8 32-bits'
'Deb9': 'Packages for Debian 9'
'Deb10': 'Packages for Debian 10'
'Nexus 5-L': 'Nexus 5-L Device Image'
'I': 'Docker Image Builds'
'TL': 'Toolchain builds for Linux 64-bits'
'TL32': 'Toolchain builds for Linux 32-bits'
'TM': 'Toolchain builds for OSX'
'TMW': 'Toolchain builds for Windows MinGW'
'TW32': 'Toolchain builds for Windows 32-bits'
'TW64': 'Toolchain builds for Windows 64-bits'
'WMC32': 'MinGW-Clang builds for Windows 32-bits'
'WMC64': 'MinGW-Clang builds for Windows 64-bits'
'Searchfox': 'Searchfox builds'
'SM': 'Spidermonkey builds'
'pub': 'APK publishing'
'p': 'Partial generation'
'ps': 'Partials signing'
'ms': 'Complete MAR signing'
'ms-stage': 'Autograph-stage MAR signing test'
'Rel': 'Release promotion'
'Snap': 'Snap image generation'
'Flatpak': 'Flatpak image generation'
'langpack': 'Langpack sigatures and uploads'
'TPS': 'Sync tests'
'UV': 'Update verify'
'pydep': 'python dependency update'
'WR': 'WebRender standalone'
'Wgpu': 'WebGPU standalone'
'Gd': 'Geckodriver'
'cpp': 'C/C++ checks'
'pedantic': 'pedantic checks'
'text': 'Check on texts'
'misc': 'Misc checks'
'js': 'JavaScript checks'
'py': 'Python checks'
'java': 'Java checks'
'rust': 'Rust checks'
'Static-Analysis': 'Full tree static-analysis'
'SS': 'Shadow scheduler'
'test-info': 'Test manifest skip/fail information'
'vismet': 'Visual Metrics Analysis'
'condprof': 'Conditioned Profile Builder'
'doc': 'Documentation'
'GhS': 'GitHub Synchronization'
'perftest': 'Performance tests'
'perftest-http3': 'Performance tests with HTTP/3'
index:
products:
- 'firefox'
- 'fennec'
- 'mobile'
- 'static-analysis'
- 'devedition'
- 'source'
- 'system-symbols'
- 'geckodriver'
try:
# We have a few platforms for which we want to do some "extra" builds, or at
# least build-ish things. Sort of. Anyway, these other things are implemented
# as different "platforms". These do *not* automatically ride along with "-p
# all"
ridealong-builds:
'linux':
- 'sm-arm-sim-linux32'
'linux64':
- 'sm-plain-linux64'
- 'sm-nojit-linux64'
- 'sm-nonunified-linux64'
- 'sm-arm-sim-linux32'
- 'sm-arm64-sim-linux64'
- 'sm-compacting-linux64'
- 'sm-rootanalysis-linux64'
- 'sm-package-linux64'
- 'sm-tsan-linux64'
- 'sm-asan-linux64'
- 'sm-mozjs-sys-linux64'
- 'sm-msan-linux64'
- 'sm-fuzzing-linux64'
- 'sm-rust-bindings-linux64'
'win32':
- 'sm-plain-win32'
- 'sm-compacting-win32'
release-promotion:
products:
- 'devedition'
- 'fennec'
- 'firefox'
flavors:
promote_devedition:
product: devedition
target-tasks-method: promote_desktop
partial-updates: true
promote_firefox:
product: firefox
target-tasks-method: promote_desktop
partial-updates: true
promote_firefox_partner_repack:
product: firefox
rebuild-kinds:
- release-partner-repack
- release-partner-repack-chunking-dummy
- release-partner-repack-signing
- release-partner-repack-notarization-part-1
- release-partner-repack-notarization-poller
- release-partner-repack-repackage
- release-partner-repack-repackage-signing
- release-partner-repack-beetmover
target-tasks-method: promote_desktop
promote_firefox_partner_attribution:
product: firefox
rebuild-kinds:
- release-partner-attribution
- release-partner-attribution-beetmover
target-tasks-method: promote_desktop
promote_firefox_rc:
product: firefox
is-rc: true
target-tasks-method: promote_desktop
partial-updates: true
push_devedition:
product: devedition
target-tasks-method: push_desktop
partial-updates: true
push_firefox:
product: firefox
target-tasks-method: push_desktop
partial-updates: true
ship_devedition:
product: devedition
target-tasks-method: ship_desktop
version-bump: true
partial-updates: true
ship_firefox:
product: firefox
target-tasks-method: ship_desktop
version-bump: true
partial-updates: true
ship_firefox_rc:
product: firefox
is-rc: true
target-tasks-method: ship_desktop
partial-updates: true
merge-automation:
behaviors:
central-to-beta:
fetch-version-from: "browser/config/version.txt"
version-files:
- filename: "config/milestone.txt"
new-suffix: ''
- filename: "browser/config/version.txt"
new-suffix: ''
- filename: "browser/config/version_display.txt"
new-suffix: 'b1'
replacements:
- - browser/config/mozconfigs/linux32/l10n-mozconfig
- ac_add_options --with-branding=browser/branding/nightly
- ac_add_options --enable-official-branding
- - browser/config/mozconfigs/linux64/l10n-mozconfig
- ac_add_options --with-branding=browser/branding/nightly
- ac_add_options --enable-official-branding
- - browser/config/mozconfigs/win32/l10n-mozconfig
- ac_add_options --with-branding=browser/branding/nightly
- ac_add_options --enable-official-branding
- - browser/config/mozconfigs/win64/l10n-mozconfig
- ac_add_options --with-branding=browser/branding/nightly
- ac_add_options --enable-official-branding
- - browser/config/mozconfigs/win64-aarch64/l10n-mozconfig
- ac_add_options --with-branding=browser/branding/nightly
- ac_add_options --enable-official-branding
- - browser/config/mozconfigs/macosx64/l10n-mozconfig
- ac_add_options --with-branding=browser/branding/nightly
- ac_add_options --enable-official-branding
- - build/mozconfig.common
- 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}'
- 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}'
- - build/mozconfig.common
- '# Disable enforcing that add-ons are signed by the trusted root'
- '# Enable enforcing that add-ons are signed by the trusted root'
merge-old-head: true
base-tag: 'FIREFOX_BETA_{major_version}_BASE'
end-tag: 'FIREFOX_BETA_{major_version}_END'
from-repo: 'https://hg.mozilla.org/mozilla-central'
from-branch: 'central'
to-repo: 'https://hg.mozilla.org/releases/mozilla-beta'
to-branch: 'beta'
beta-to-release:
fetch-version-from: "browser/config/version.txt"
version-files:
- filename: "browser/config/version_display.txt"
new-suffix: ''
replacements: []
merge-old-head: true
base-tag: 'FIREFOX_RELEASE_{major_version}_BASE'
end-tag: 'FIREFOX_RELEASE_{major_version}_END'
from-repo: 'https://hg.mozilla.org/releases/mozilla-beta'
from-branch: 'beta'
to-repo: 'https://hg.mozilla.org/releases/mozilla-release'
to-branch: 'release'
release-to-esr:
fetch-version-from: "browser/config/version.txt"
version-files:
- filename: "browser/config/version_display.txt"
new-suffix: 'esr'
replacements:
- - "build/mozconfig.common"
- "# Enable enforcing that add-ons are signed by the trusted root"
- "# Disable enforcing that add-ons are signed by the trusted root"
- - build/mozconfig.common
- 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}'
- 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}'
merge-old-head: false
base-tag: "FIREFOX_ESR_{major_version}_BASE"
from-repo: 'https://hg.mozilla.org/releases/mozilla-release'
from-branch: 'release'
to-repo: 'https://hg.mozilla.org/releases/mozilla-esr68'
to-branch: 'esr68'
release-to-esr78:
fetch-version-from: "browser/config/version.txt"
version-files:
- filename: "browser/config/version_display.txt"
new-suffix: 'esr'
replacements:
- - "build/mozconfig.common"
- "# Enable enforcing that add-ons are signed by the trusted root"
- "# Disable enforcing that add-ons are signed by the trusted root"
- - build/mozconfig.common
- 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}'
- 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}'
merge-old-head: false
base-tag: "FIREFOX_ESR_{major_version}_BASE"
from-repo: 'https://hg.mozilla.org/releases/mozilla-release'
from-branch: 'release'
to-repo: 'https://hg.mozilla.org/releases/mozilla-esr78'
to-branch: 'esr78'
bump-central:
fetch-version-from: "browser/config/version.txt"
version-files:
- filename: "config/milestone.txt"
version-bump: "major"
new-suffix: 'a1'
- filename: "browser/config/version.txt"
version-bump: "major"
new-suffix: 'a1'
- filename: "browser/config/version_display.txt"
version-bump: "major"
new-suffix: 'a1'
replacements:
- - "xpcom/components/Module.h"
- "static const unsigned int kVersion = {current_major_version};"
- "static const unsigned int kVersion = {next_major_version};"
- - "services/sync/modules/constants.js"
- 'WEAVE_VERSION: "1.{current_weave_version}.0"'
- 'WEAVE_VERSION: "1.{next_weave_version}.0"'
merge-old-head: false
end-tag: 'FIREFOX_NIGHTLY_{major_version}_END'
to-repo: 'https://hg.mozilla.org/mozilla-central'
to-branch: 'central'
bump-esr:
fetch-version-from: "browser/config/version.txt"
version-files:
- filename: "config/milestone.txt"
version-bump: "minor"
- filename: "browser/config/version.txt"
version-bump: "minor"
- filename: "browser/config/version_display.txt"
version-bump: "minor"
replacements: []
merge-old-head: false
to-repo: 'https://hg.mozilla.org/releases/mozilla-esr78'
to-branch: 'esr78'
scriptworker:
# See additional configuration in taskcluster/taskgraph/util/scriptworker.py
scope-prefix: 'project:releng'
partner-urls:
release-partner-repack:
by-release-product:
default: null
firefox:
by-release-type:
default: null
beta|release.*:
by-release-level:
production: 'git@github.com:mozilla-partners/repack-manifests.git'
staging: 'git@github.com:moz-releng-automation-stage/repack-manifests.git'
esr.*:
by-release-level:
production: 'git@github.com:mozilla-partners/esr-repack-manifests.git'
staging: 'git@github.com:moz-releng-automation-stage/esr-repack-manifests.git'
release-partner-attribution:
by-release-product:
default: null
firefox:
by-release-type:
default: null
beta|release.*:
by-release-level:
production: 'git@github.com:mozilla-partners/repack-manifests.git'
staging: 'git@github.com:moz-releng-automation-stage/repack-manifests.git'
release-eme-free-repack:
by-release-product:
default: null
firefox:
by-release-type:
default: null
beta|release.*:
by-release-level:
production: 'git@github.com:mozilla-partners/mozilla-EME-free-manifest.git'
staging: 'git@github.com:moz-releng-automation-stage/mozilla-EME-free-manifest.git'
task-priority:
by-project:
'mozilla-release': 'highest'
'mozilla-esr.*': 'very-high'
'mozilla-beta': 'high'
'mozilla-central': 'medium'
'autoland': 'low'
'mozilla-inbound': 'low'
'default': 'very-low'
taskgraph: {}
workers:
aliases:
b-linux.*:
provisioner: '{trust-domain}-{level}'
implementation: docker-worker
os: linux
worker-type: '{alias}'
b-win2012:
provisioner: '{trust-domain}-{level}'
implementation: generic-worker
os: windows
worker-type: '{alias}'
images:
provisioner: '{trust-domain}-{level}'
implementation: docker-worker
os: linux
worker-type: '{alias}'
balrog:
provisioner: scriptworker-k8s
implementation: balrog
os: scriptworker
worker-type:
by-release-level:
production: '{trust-domain}-3-balrog'
staging: '{trust-domain}-1-balrog'
bouncer:
provisioner: scriptworker-k8s
# Note that this implementation doesn't correspond with an
# payload_builder, there are several `bouncer-*` implemenations.
implementation: bouncer
os: scriptworker
worker-type:
by-release-level:
production: '{trust-domain}-3-bouncer'
staging: '{trust-domain}-1-bouncer'
beetmover:
provisioner: scriptworker-k8s
implementation: beetmover
os: scriptworker
worker-type:
by-release-level:
production: '{trust-domain}-3-beetmover'
staging: '{trust-domain}-1-beetmover'
linux-depsigning:
provisioner: scriptworker-k8s
implementation: scriptworker-signing
os: linux
worker-type: '{trust-domain}-t-signing'
linux-signing:
provisioner: scriptworker-k8s
implementation: scriptworker-signing
os: linux
worker-type:
by-release-level:
production: '{trust-domain}-3-signing'
staging: '{trust-domain}-t-signing'
mac-depsigning:
provisioner: scriptworker-prov-v1
implementation: scriptworker-signing
os: macosx
worker-type: depsigning-mac-v1
mac-notarization-poller:
provisioner: scriptworker-prov-v1
implementation: notarization-poller
os: macosx
worker-type: mac-notarization-poller
mac-signing:
provisioner: scriptworker-prov-v1
implementation: scriptworker-signing
os: macosx
worker-type:
by-release-level:
production: signing-mac-v1
staging: depsigning-mac-v1
tree:
provisioner: scriptworker-k8s
implementation: treescript
os: scriptworker
worker-type:
by-release-level:
production: '{trust-domain}-3-tree'
staging: '{trust-domain}-1-tree'
tree-dev:
provisioner: scriptworker-k8s
implementation: treescript
os: scriptworker
worker-type: '{trust-domain}-1-tree-dev'
t-bitbar-gw.*:
provisioner: proj-autophone
implementation: generic-worker
os: linux-bitbar
worker-type: 'gecko-{alias}'
t-linux(-large|-xlarge|-xlarge-source|-metal):
provisioner: '{trust-domain}-t'
implementation: docker-worker
os: linux
worker-type: '{alias}'
t-linux-talos:
provisioner: releng-hardware
implementation: generic-worker
os: linux
worker-type: 'gecko-{alias}'
t-osx-1010:
provisioner: releng-hardware
implementation: generic-worker
os: macosx
worker-type: 'gecko-{alias}'
t-osx-1014:
provisioner: releng-hardware
implementation: generic-worker
os: macosx
worker-type: 'gecko-{alias}'
t-osx-1014-power:
provisioner: releng-hardware
implementation: generic-worker
os: macosx
worker-type: 'gecko-{alias}'
t-linux-xlarge-pgo:
provisioner:
by-level:
'3': '{trust-domain}-{level}'
default: '{trust-domain}-t'
implementation: docker-worker
os: linux
worker-type: 't-linux-xlarge'
t-osx-1010-pgo:
provisioner: releng-hardware
implementation: generic-worker
os: macosx
worker-type:
by-level:
'3': 'gecko-{level}-t-osx-1010'
default: 'gecko-t-osx-1010'
t-osx-1014-pgo:
provisioner: releng-hardware
implementation: generic-worker
os: macosx
worker-type:
by-level:
'3': 'gecko-{level}-t-osx-1014'
default: 'gecko-t-osx-1014'
t-win10-64(|-gpu-s|-source):
provisioner: '{trust-domain}-t'
implementation: generic-worker
os: windows
worker-type: '{alias}'
t-win10-64(-hw|-ref-hw|-1803-hw):
provisioner: releng-hardware
implementation: generic-worker
os: windows
worker-type: 'gecko-{alias}'
t-win7-32(|-gpu):
provisioner: '{trust-domain}-t'
implementation: generic-worker
os: windows
worker-type: '{alias}'
t-win64-aarch64-laptop:
provisioner: bitbar
implementation: generic-worker
os: windows
worker-type: 'gecko-{alias}'
succeed:
provisioner: built-in
implementation: succeed
os: none
worker-type: succeed
misc:
provisioner: '{trust-domain}-t'
implementation: docker-worker
os: linux
worker-type: misc
mac-notarization:
mac-behavior:
by-project:
mozilla-(central|beta|release|esr.*):
by-shippable:
"true": mac_notarize
default: mac_sign_and_pkg
default: mac_sign_and_pkg
mac-entitlements:
by-platform:
macosx64.*:
by-release-level:
production: security/mac/hardenedruntime/production.entitlements.xml
default: security/mac/hardenedruntime/developer.entitlements.xml
default: ''