gecko-dev/taskcluster/ci/config.yml

615 строки
26 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/Geckoview'
'Btime-P-fenix': 'Browsertime power tests on Fenix'
'Btime-P-1proc': 'Browsertime power tests on Fennec'
'Btime-P-refbrow': 'Browsertime power tests on reference browser'
'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'
'Btime-live-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-live': 'Raptor performance tests on Firefox with live sites'
'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'
- 'sm-nowarp-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:
- - build/defines.sh
- EARLY_BETA_OR_EARLIER=1
- EARLY_BETA_OR_EARLIER=
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-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-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-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: ''