summaryrefslogtreecommitdiffstats
path: root/taskcluster/ci/build-apk/kind.yml
diff options
context:
space:
mode:
Diffstat (limited to 'taskcluster/ci/build-apk/kind.yml')
-rw-r--r--taskcluster/ci/build-apk/kind.yml518
1 files changed, 518 insertions, 0 deletions
diff --git a/taskcluster/ci/build-apk/kind.yml b/taskcluster/ci/build-apk/kind.yml
new file mode 100644
index 0000000000..99132d17f8
--- /dev/null
+++ b/taskcluster/ci/build-apk/kind.yml
@@ -0,0 +1,518 @@
+# 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: gecko_taskgraph.loader.transform:loader
+
+transforms:
+ - android_taskgraph.transforms.build_android_app:transforms
+ - gecko_taskgraph.transforms.build_schedules:transforms
+ - gecko_taskgraph.transforms.job:transforms
+ - gecko_taskgraph.transforms.task:transforms
+
+kind-dependencies:
+ - toolchain
+ - build-fat-aar
+
+job-defaults:
+ apk-artifact-template:
+ type: file
+ name: 'public/build/target.{abi}.apk'
+ path: '/builds/worker/checkouts/gecko/mobile/android/{source_project_name}/app/build/outputs/apk/{gradle_build}/{gradle_build_type}/{fileName}'
+
+
+jobs:
+ focus-debug:
+ attributes:
+ shipping-product: focus
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ description: 'Focus debug build from source code'
+ run:
+ gradle-build-type: debug
+ gradle-build-name: focusDebug
+ gradle-build: focus
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-debug(Bf)
+ platform: focus-android-all/opt
+
+ klar-debug:
+ attributes:
+ shipping-product: focus
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ description: 'Klar debug build from source code'
+ run:
+ gradle-build-type: debug
+ gradle-build-name: klarDebug
+ gradle-build: klar
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-debug(Bkl)
+ platform: focus-android-all/opt
+
+ fenix-debug:
+ attributes:
+ shipping-product: fenix
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ description: 'Fenix debug build from source code'
+ run:
+ gradle-build-type: debug
+ gradle-build-name: fenixDebug
+ gradle-build: fenix
+ gradle-extra-options:
+ - -PdisableLeakCanary
+ track-apk-size: true
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-debug(Bf)
+ platform: fenix-android-all/opt
+
+ focus-release:
+ description: 'Release Focus build'
+ attributes:
+ release-type: release
+ shipping-product: focus
+ shipping-product: firefox-android
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ include-shippable-secrets: true
+ include-release-version: true
+ run:
+ gradle-build-type: release
+ gradle-build-name: focusRelease
+ gradle-build: focus
+ run-on-projects: []
+ shipping-phase: promote
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-release(Bf)
+ platform: focus-android-all/opt
+
+ klar-release:
+ description: 'Release Klar build'
+ attributes:
+ release-type: release
+ shipping-product: focus
+ shipping-product: firefox-android
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ include-shippable-secrets: true
+ include-release-version: true
+ run:
+ gradle-build-type: release
+ gradle-build-name: klarRelease
+ gradle-build: klar
+ run-on-projects: []
+ shipping-phase: promote
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-release(Bkl)
+ platform: focus-android-all/opt
+
+ fenix-release:
+ description: 'Release Fenix build'
+ attributes:
+ release-type: release
+ shipping-product: fenix
+ shipping-product: firefox-android
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ include-shippable-secrets: true
+ include-release-version: true
+ run:
+ gradle-build-type: release
+ gradle-build-name: fenixRelease
+ gradle-build: fenix
+ track-apk-size: true
+ run-on-projects: []
+ shipping-phase: promote
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-release(Bf)
+ platform: fenix-android-all/opt
+
+ focus-nightly:
+ description: 'Nightly focus build'
+ attributes:
+ # any tasks that have this as a primary dependency will
+ # inherit this attribute via the multi_dep loader
+ shipping-product: focus
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ include-shippable-secrets: true
+ include-nightly-version: true
+ run:
+ gradle-build-type: nightly
+ gradle-build-name: focusNightly
+ gradle-build: focus
+ run-on-projects: []
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-nightly(B)
+ platform: focus-android-all/opt
+
+ fenix-nightly:
+ description: 'Nightly fenix build'
+ attributes:
+ # any tasks that have this as a primary dependency will
+ # inherit this attribute via the multi_dep loader
+ shipping-product: fenix
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ include-shippable-secrets: true
+ include-nightly-version: true
+ source-project-name: "fenix"
+ run:
+ gradle-build-type: nightly
+ gradle-build-name: fenixNightly
+ gradle-build: fenix
+ track-apk-size: true
+ run-on-projects: []
+ treeherder:
+ symbol: fenix-nightly(B)
+ platform: fenix-android-all/opt
+
+ focus-beta:
+ description: 'Beta focus build'
+ attributes:
+ release-type: beta
+ shipping-product: focus
+ shipping-product: firefox-android
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ include-shippable-secrets: true
+ include-release-version: true
+ run:
+ gradle-build-type: beta
+ gradle-build-name: focusBeta
+ gradle-build: focus
+ run-on-projects: []
+ shipping-phase: promote
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-beta(B)
+ platform: focus-android-all/opt
+
+ fenix-beta:
+ description: 'Beta fenix build'
+ attributes:
+ release-type: beta
+ shipping-product: fenix
+ shipping-product: firefox-android
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ include-shippable-secrets: true
+ include-release-version: true
+ run:
+ gradle-build-type: beta
+ gradle-build-name: fenixBeta
+ gradle-build: fenix
+ track-apk-size: true
+ run-on-projects: []
+ shipping-phase: promote
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-beta(B)
+ platform: fenix-android-all/opt
+
+ focus-nightly-firebase:
+ attributes:
+ shipping-product: focus
+ description: 'Focus Nightly build for UI tests'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ disable-optimization: true
+ run:
+ gradle-build-type: nightly
+ gradle-build-name: focusNightly
+ gradle-build: focus
+ test-build-type: nightly
+ run-on-projects: [trunk]
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-nightly(Bf)
+ platform: focus-android-all/opt
+
+ fenix-nightly-firebase:
+ attributes:
+ shipping-product: fenix
+ description: 'Fenix Nightly build for UI tests'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ disable-optimization: true
+ run:
+ gradle-build-type: nightly
+ gradle-build-name: fenixNightly
+ gradle-build: fenix
+ test-build-type: nightly
+ run-on-projects: [trunk]
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-nightly(Bf)
+ platform: fenix-android-all/opt
+
+ focus-beta-firebase:
+ attributes:
+ shipping-product: focus
+ description: 'Focus Beta build for UI tests'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ disable-optimization: true
+ run:
+ gradle-build-type: beta
+ gradle-build-name: focusBeta
+ gradle-build: focus
+ test-build-type: beta
+ run-on-projects: ['release']
+ source-project-name: "focus-android"
+ treeherder:
+ symbol: focus-beta(Bf)
+ platform: focus-android-all/opt
+
+ fenix-beta-firebase:
+ attributes:
+ shipping-product: fenix
+ description: 'Fenix Beta build for UI tests'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ disable-optimization: true
+ run:
+ gradle-build-type: beta
+ gradle-build-name: fenixBeta
+ gradle-build: fenix
+ test-build-type: beta
+ run-on-projects: ['release']
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-beta(Bf)
+ platform: fenix-android-all/opt
+
+ focus-android-test-debug:
+ attributes:
+ shipping-product: focus
+ description: 'Focus Android Test for debugging'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ run:
+ gradle-build-type: androidTest
+ gradle-build-name: androidTest
+ gradle-build: focus
+ source-project-name: "focus-android"
+ apk-artifact-template:
+ # this path is determined by the gradle build configs
+ path: '/builds/worker/checkouts/gecko/mobile/android/focus-android/app/build/outputs/apk/androidTest/focus/debug/app-focus-debug-androidTest.apk'
+ treeherder:
+ symbol: focus-debug(Bat)
+ platform: focus-android-all/opt
+
+ fenix-android-test-debug:
+ attributes:
+ shipping-product: fenix
+ description: 'Fenix Debug Android Test for debugging'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ run:
+ gradle-build-type: androidTest
+ gradle-build-name: androidTest
+ gradle-build: fenix
+ source-project-name: "fenix"
+ apk-artifact-template:
+ # 3 differences here:
+ # * "androidTest/" is added
+ # * "{gradle_build_type}" is forced to "debug"
+ # * "{fileName}" is forced to "app-fenix-debug-androidTest.apk"
+ path: '/builds/worker/checkouts/gecko/mobile/android/fenix/app/build/outputs/apk/androidTest/fenix/debug/app-fenix-debug-androidTest.apk'
+ treeherder:
+ symbol: fenix-debug(Bat)
+ platform: fenix-android-all/opt
+
+ # android-test-nightly and android-test-beta, while still being debug builds, are meant to be signed
+ # with the nightly/beta 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.
+
+ focus-android-test-nightly:
+ attributes:
+ shipping-product: focus
+ description: 'Focus Nightly Android Test for debugging'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ run:
+ gradle-build-type: androidTest
+ gradle-build-name: androidTest
+ gradle-build: focus
+ test-build-type: nightly
+ run-on-projects: [trunk]
+ source-project-name: "focus-android"
+ apk-artifact-template:
+ path: '/builds/worker/checkouts/gecko/mobile/android/focus-android/app/build/outputs/apk/androidTest/focus/nightly/app-focus-nightly-androidTest.apk'
+ treeherder:
+ symbol: focus-nightly(Bat)
+ platform: focus-android-all/opt
+
+ # android-test-nightly and android-test-beta, while still being debug builds, are meant to be signed
+ # with the nightly/beta 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.
+ fenix-android-test-nightly:
+ attributes:
+ nightly: true
+ shipping-product: fenix
+ description: 'Fenix Nightly Android Test for debugging'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar/opt
+ apk-artifact-template:
+ # 3 differences here:
+ # * "androidTest/" is added
+ # * "{gradle_build_type}" is forced to "debug"
+ # * "{fileName}" is forced to "app-fenix-nightly-androidTest.apk"
+ path: '/builds/worker/checkouts/gecko/mobile/android/fenix/app/build/outputs/apk/androidTest/fenix/nightly/app-fenix-nightly-androidTest.apk'
+ disable-optimization: true
+ run:
+ gradle-build-type: androidTest
+ gradle-build-name: androidTest
+ gradle-build: fenix
+ test-build-type: nightly
+ run-on-projects: [trunk]
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-nightly(Bat)
+ platform: fenix-android-all/opt
+
+ focus-android-test-beta:
+ attributes:
+ shipping-product: focus
+ description: 'Focus Beta Android Test for debugging'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ run:
+ gradle-build-type: androidTest
+ gradle-build-name: androidTest
+ gradle-build: focus
+ test-build-type: beta
+ run-on-projects: ['release']
+ source-project-name: "focus-android"
+ apk-artifact-template:
+ path: '/builds/worker/checkouts/gecko/mobile/android/focus-android/app/build/outputs/apk/androidTest/focus/beta/app-focus-beta-androidTest.apk'
+ treeherder:
+ symbol: focus-beta(Bat)
+ platform: focus-android-all/opt
+
+ fenix-android-test-beta:
+ attributes:
+ shipping-product: fenix
+ description: 'Fenix Beta Android Test for debugging'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ apk-artifact-template:
+ # 3 differences here:
+ # * "androidTest/" is added
+ # * "{gradle_build_type}" is forced to "beta"
+ # * "{fileName}" is forced to "app-fenix-beta-androidTest.apk"
+ path: '/builds/worker/checkouts/gecko/mobile/android/fenix/app/build/outputs/apk/androidTest/fenix/beta/app-fenix-beta-androidTest.apk'
+ disable-optimization: true
+ run:
+ gradle-build-type: androidTest
+ gradle-build-name: androidTest
+ gradle-build: fenix
+ test-build-type: beta
+ run-on-projects: ['release']
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-beta(Bat)
+ platform: fenix-android-all/opt
+
+ fenix-android-test-mozillaonline:
+ attributes:
+ shipping-product: fenix
+ description: 'Fenix Android Test mozillaonline'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ apk-artifact-template:
+ # 3 differences here:
+ # * "androidTest/" is added
+ # * "{gradle_build_type}" is forced to "beta"
+ # * "{fileName}" is forced to "app-fenix-beta-androidTest.apk"
+ path: '/builds/worker/checkouts/gecko/mobile/android/fenix/app/build/outputs/apk/androidTest/fenix/beta/app-fenix-beta-androidTest.apk'
+ run-on-projects: []
+ disable-optimization: true
+ run:
+ gradle-build-type: androidTest
+ gradle-build-name: androidTest
+ gradle-build: fenix
+ gradle-extra-options:
+ - -PmozillaOnline
+ test-build-type: beta
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-beta(Bat-mo)
+ platform: fenix-android-all/opt
+
+ fenix-nightly-simulation:
+ description: 'Fenix Nightly Simulation'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ attributes:
+ nightly: false
+ shipping-product: fenix
+ include-nightly-version: true
+ include-shippable-secrets: true
+ run-on-projects: []
+ run:
+ gradle-build-type: nightly
+ gradle-build-name: fenixNightly
+ gradle-build: fenix
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-nightlySim(B)
+ platform: fenix-android-all/opt
+
+ fenix-beta-mozillaonline:
+ description: 'Fenix Beta mozillaonline'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ attributes:
+ release-type: beta
+ shipping_phase: promote
+ shipping-product: fenix
+ include-release-version: true
+ include-shippable-secrets: true
+ run:
+ gradle-build-type: beta
+ gradle-build-name: fenixBeta
+ gradle-build: fenix
+ gradle-extra-options:
+ - -PmozillaOnline
+ run-on-projects: []
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-beta(Bmo)
+ platform: fenix-android-all/opt
+
+ fenix-release-mozillaonline:
+ description: 'Fenix Release mozillaonline'
+ dependencies:
+ build-fat-aar: build-fat-aar-android-geckoview-fat-aar-shippable/opt
+ attributes:
+ release-type: release
+ shipping_phase: promote
+ shipping-product: fenix
+ include-release-version: true
+ include-shippable-secrets: true
+ run:
+ gradle-build-type: release
+ gradle-build-name: fenixRelease
+ gradle-build: fenix
+ gradle-extra-options:
+ - -PmozillaOnline
+ run-on-projects: []
+ source-project-name: "fenix"
+ treeherder:
+ symbol: fenix-release(Bmo)
+ platform: fenix-android-all/opt