# 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.transform:loader transforms: - fenix_taskgraph.transforms.build:transforms - taskgraph.transforms.job:transforms - taskgraph.transforms.task:transforms job-defaults: description: Build Fenix from source code. treeherder: kind: build symbol: B platform: android-all/opt tier: 1 worker-type: b-android worker: docker-image: {in-tree: base} max-run-time: 7200 chain-of-trust: true run: using: gradlew use-caches: false run-on-tasks-for: [] # Builds generate multiple APKs with different ABIs. For each APK described # by `gradlew printVariant`, an artifact will be generated. `variant` and # the per-apk config from `printVariant` can be used as substitutions in # `name` and `path`. apk-artifact-template: type: file name: public/build/{abi}/{geckoview_engine}/target.apk path: '/builds/worker/checkouts/src/app/build/outputs/apk/{geckoview_engine}/{gradle_build_type}/{fileName}' jobs: debug: attributes: code-review: true run-on-tasks-for: [github-pull-request, github-push] run: geckoview-engine: geckoNightly gradle-build-type: debug treeherder: symbol: debug(B) android-test-debug: attributes: code-review: true run-on-tasks-for: [github-pull-request, github-push] run: geckoview-engine: geckoNightly gradle-build-type: androidTest apk-artifact-template: # 2 differences here: "androidTest/" is added and "{gradle_build_type}" is forced to "debug" path: '/builds/worker/checkouts/src/app/build/outputs/apk/androidTest/{geckoview_engine}/debug/{fileName}' treeherder: symbol: debug(Bat) # android-test-nightly, while still being a debug build, is meant to be signed with the nightly # key. The Firebase testing infrastructure requires both the androidTest APK and the APK under # test to be signed with the same key. Thus, the nightly APK being signed with nightly means # we need an androidTest APK with the same signature. # # TODO: See if we can tweak the signing kind to make 2 signing jobs out of a single `android-test` # job. android-test-nightly: attributes: nightly: true run: geckoview-engine: geckoNightly gradle-build-type: androidTest apk-artifact-template: # 2 differences here: "androidTest/" is added and "{gradle_build_type}" is forced to "debug" path: '/builds/worker/checkouts/src/app/build/outputs/apk/androidTest/{geckoview_engine}/debug/{fileName}' treeherder: symbol: nightly(Bat) performance-test: run: geckoview-engine: geckoNightly gradle-build-type: forPerformanceTest treeherder: symbol: forPerformanceTest(B) nightly: attributes: nightly: true include-nightly-version: true include-shippable-secrets: true run: geckoview-engine: geckoNightly gradle-build-type: fenixNightly treeherder: symbol: nightly(B) beta: attributes: release-type: beta include-release-version: true include-shippable-secrets: true filter-incomplete-translations: true run: geckoview-engine: geckoBeta gradle-build-type: fenixBeta run-on-tasks-for: [github-release] treeherder: symbol: beta(B) production: attributes: release-type: production include-release-version: true include-shippable-secrets: true filter-incomplete-translations: true run: geckoview-engine: geckoBeta gradle-build-type: fenixProduction run-on-tasks-for: [github-release] treeherder: symbol: production(B) fennec-nightly: attributes: nightly: true include-nightly-version: true include-shippable-secrets: true run: geckoview-engine: geckoNightly gradle-build-type: fennecNightly treeherder: symbol: nightlyFennec(B) fennec-beta: attributes: release-type: beta include-release-version: true include-shippable-secrets: true filter-incomplete-translations: true run: geckoview-engine: geckoBeta gradle-build-type: fennecBeta treeherder: symbol: betaFennec(B) fennec-production: attributes: # TODO replace `nightly: true` by `release-type: production` once the data migration # testing is over # TODO when making the above change, uncomment `filter-incomplete-translations: true` nightly: true include-release-version: true include-shippable-secrets: true # filter-incomplete-translations: true run: geckoview-engine: geckoBeta gradle-build-type: fennecProduction treeherder: symbol: productionFennec(B)