Bug 1548864 - part 3: Enable `-beta` Android builds r=Callek a=release
authorJohan Lorenzo <jlorenzo@mozilla.com>
Thu, 02 May 2019 16:13:49 +0200
changeset 533350 f58c24f5f8543fde39d341ac43ed18ea5e87c7f2
parent 533349 bf2b338d006a89b15dfe76868dc10a29f6e91243
child 533351 d51fe28644b8b66c0b7dfc4a0504813aeef52640
push id11299
push userjlorenzo@mozilla.com
push dateFri, 24 May 2019 04:06:52 +0000
treeherdermozilla-beta@1f2cf02d4beb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersCallek, release
bugs1548864
milestone68.0
Bug 1548864 - part 3: Enable `-beta` Android builds r=Callek a=release Differential Revision: https://phabricator.services.mozilla.com/D29850
mobile/android/config/mozconfigs/android-aarch64/beta-profile-use
taskcluster/ci/balrog/kind.yml
taskcluster/ci/beetmover/kind.yml
taskcluster/ci/build/android.yml
taskcluster/ci/generate-profile/kind.yml
taskcluster/ci/instrumented-build/kind.yml
taskcluster/taskgraph/manifests/fennec_candidates_checksums.yml
taskcluster/taskgraph/manifests/fennec_nightly.yml
taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
taskcluster/taskgraph/transforms/beetmover_geckoview.py
taskcluster/taskgraph/util/scriptworker.py
testing/mozharness/configs/builds/releng_sub_android_configs/64_aarch64_beta_pgo.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
copy from mobile/android/config/mozconfigs/android-aarch64/profile-use
copy to mobile/android/config/mozconfigs/android-aarch64/beta-profile-use
--- a/mobile/android/config/mozconfigs/android-aarch64/profile-use
+++ b/mobile/android/config/mozconfigs/android-aarch64/beta-profile-use
@@ -1,9 +1,9 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/nightly"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/beta"
 
 export LLVM_PROFDATA="$topsrcdir/clang/bin/llvm-profdata"
 
 ac_add_options --enable-profile-use
 
 # This is disabled because jarlog re-ordering breaks apk publishing tasks,
 # see bug 1539933.
 # ac_add_options --with-pgo-jarlog=/builds/worker/fetches/en-US.log
--- a/taskcluster/ci/balrog/kind.yml
+++ b/taskcluster/ci/balrog/kind.yml
@@ -19,14 +19,18 @@ only-for-attributes:
     - nightly
     - shippable
 
 not-for-build-platforms:
     - android-api-16-nightly/opt
     - android-x86_64-nightly/opt
     - android-x86-nightly/opt
     - android-aarch64-nightly/opt
+    - android-api-16-beta/opt
+    - android-x86_64-beta/opt
+    - android-x86-beta/opt
+    - android-aarch64-beta/opt
 
 job-template:
     update-no-wnp:
         by-release-type:
             nightly.*: false
             default: true
--- a/taskcluster/ci/beetmover/kind.yml
+++ b/taskcluster/ci/beetmover/kind.yml
@@ -36,12 +36,13 @@ not-for-build-platforms:
     - win64-aarch64-devedition-nightly/opt
     - linux64-asan-reporter-nightly/opt
     - win64-asan-reporter-nightly/opt
 
 job-template:
     shipping-phase: promote
     attributes:
         artifact_map:
-            by-project:
-                mozilla-release: taskcluster/taskgraph/manifests/fennec_candidates.yml
-                mozilla-beta: taskcluster/taskgraph/manifests/fennec_candidates.yml
+            by-release-type:
+                release: taskcluster/taskgraph/manifests/fennec_candidates.yml
+                beta: taskcluster/taskgraph/manifests/fennec_candidates.yml
+                nightly: taskcluster/taskgraph/manifests/fennec_nightly.yml
                 default: taskcluster/taskgraph/manifests/fennec_nightly.yml
--- a/taskcluster/ci/build/android.yml
+++ b/taskcluster/ci/build/android.yml
@@ -6,19 +6,16 @@ job-defaults:
     index:
         product: mobile
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
         artifacts:
-            - name: public/build/target.maven.zip
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
-              type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
               type: file
             - name: public/build
               path: /builds/worker/artifacts/
@@ -55,16 +52,38 @@ android-api-16/debug:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
     run:
         actions: [get-secrets, build]
         config: ["builds/releng_base_android_64_builds.py"]
         custom-build-variant-cfg: api-16-debug
     toolchains:
         - linux64-sccache
 
+android-api-16-beta/debug:
+    description: "Android 4.0 api-16+ Beta Debug"
+    index:
+        job-name: android-api-16-beta-debug
+    treeherder:
+        platform: android-4-0-armv7-api16-beta/debug
+        symbol: B
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build]
+        config: ["builds/releng_base_android_64_builds.py"]
+        custom-build-variant-cfg: api-16-beta-debug
+    toolchains:
+        - linux64-sccache
+
 android-x86/opt:
     description: "Android 4.2 x86 Opt"
     index:
         job-name: android-x86-opt
     attributes:
         enable-full-crashsymbols: true
     treeherder:
         platform: android-4-2-x86/opt
@@ -75,26 +94,67 @@ android-x86/opt:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
     run:
         actions: [get-secrets, build]
         config: ["builds/releng_base_android_64_builds.py"]
         custom-build-variant-cfg: x86
     toolchains:
         - linux64-sccache
 
+android-x86/debug:
+    description: "Android x86 Debug"
+    index:
+        job-name: android-x86-debug
+    attributes:
+        enable-full-crashsymbols: false
+    treeherder:
+        platform: android-4-2-x86/debug
+        symbol: B
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
+    run:
+        actions: [get-secrets, build]
+        config: ["builds/releng_base_android_64_builds.py"]
+        custom-build-variant-cfg: x86-debug
+
+android-x86-beta/debug:
+    description: "Android x86 Beta Debug"
+    index:
+        job-name: android-x86-beta-debug
+    attributes:
+        enable-full-crashsymbols: false
+    treeherder:
+        platform: android-4-2-x86-beta/debug
+        symbol: B
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build]
+        config: ["builds/releng_base_android_64_builds.py"]
+        custom-build-variant-cfg: x86-beta-debug
+
 android-x86-fuzzing/debug:
     description: "Android x86 Fuzzing Debug"
     index:
         job-name: android-x86-fuzzing-debug
     treeherder:
         platform: android-4-2-x86/debug
         symbol: Bf
     worker-type: b-linux
     worker:
         env:
+            PERFHERDER_EXTRA_OPTIONS: android-x86-fuzzing
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
     run:
         actions: [get-secrets, build]
         config: ["builds/releng_base_android_64_builds.py"]
         custom-build-variant-cfg: x86-fuzzing-debug
     toolchains:
         - linux64-sccache
 
@@ -117,16 +177,44 @@ android-x86-nightly/opt:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
     run:
         actions: [get-secrets, build, multi-l10n]
         config:
             - builds/releng_base_android_64_builds.py
             - taskcluster_nightly.py
         custom-build-variant-cfg: x86
 
+android-x86-beta/opt:
+    description: "Android 4.2 x86 Beta"
+    attributes:
+        nightly: true
+        enable-full-crashsymbols: true
+    shipping-phase: build
+    shipping-product: fennec
+    index:
+        job-name: android-x86-beta-opt
+        type: android-nightly
+    treeherder:
+        platform: android-4-2-x86-beta/opt
+        symbol: N
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build, multi-l10n]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - taskcluster_nightly.py
+        custom-build-variant-cfg: x86-beta
+
 android-api-16/opt:
     description: "Android 4.0 api-16+ Opt"
     index:
         job-name: android-api-16-opt
     attributes:
         enable-full-crashsymbols: true
     treeherder:
         platform: android-4-0-armv7-api16/opt
@@ -201,16 +289,45 @@ android-api-16-nightly/opt:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
     run:
         actions: [get-secrets, build, multi-l10n]
         config:
             - builds/releng_base_android_64_builds.py
             - taskcluster_nightly.py
         custom-build-variant-cfg: api-16-profile-use
 
+android-api-16-beta/opt:
+    description: "Android 4.0 api-16+ Beta"
+    use-pgo: android-api-16/pgo
+    attributes:
+        nightly: true
+        enable-full-crashsymbols: true
+    shipping-phase: build
+    shipping-product: fennec
+    index:
+        job-name: android-api-16-beta-opt
+        type: android-nightly-with-multi-l10n
+    treeherder:
+        platform: android-4-0-armv7-api16-beta/opt
+        symbol: N
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build, multi-l10n]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - taskcluster_nightly.py
+        custom-build-variant-cfg: api-16-beta
+
 android-aarch64/opt:
     description: "Android 5.0 AArch64 Opt"
     index:
         job-name: android-aarch64-opt
     attributes:
         enable-full-crashsymbols: true
     treeherder:
         platform: android-5-0-aarch64/opt
@@ -260,16 +377,38 @@ android-aarch64/debug:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
     run:
         actions: [get-secrets, build]
         config: ["builds/releng_base_android_64_builds.py"]
         custom-build-variant-cfg: aarch64-debug
     toolchains:
         - linux64-sccache
 
+android-aarch64-beta/debug:
+    description: "Android 5.0 AArch64 Beta ebug"
+    index:
+        job-name: android-aarch64-beta-debug
+    treeherder:
+        platform: android-5-0-aarch64-beta/debug
+        symbol: B
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build]
+        config: ["builds/releng_base_android_64_builds.py"]
+        custom-build-variant-cfg: aarch64-beta-debug
+    toolchains:
+        - linux64-sccache
+
 android-aarch64-nightly/opt:
     description: "Android 5.0 AArch64 Nightly"
     use-pgo: android-api-16/pgo
     attributes:
         enable-full-crashsymbols: true
         nightly: true
     shipping-phase: build
     shipping-product: fennec
@@ -285,16 +424,45 @@ android-aarch64-nightly/opt:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
     run:
         actions: [get-secrets, build, multi-l10n]
         config:
             - builds/releng_base_android_64_builds.py
             - taskcluster_nightly.py
         custom-build-variant-cfg: aarch64-pgo
 
+android-aarch64-beta/opt:
+    description: "Android 5.0 AArch64 Beta"
+    use-pgo: android-api-16-beta/pgo
+    attributes:
+        nightly: true
+        enable-full-crashsymbols: true
+    shipping-phase: build
+    shipping-product: fennec
+    index:
+        job-name: android-aarch64-beta-opt
+        type: android-nightly
+    treeherder:
+        platform: android-5-0-aarch64-beta/opt
+        symbol: N
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build, multi-l10n]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - taskcluster_nightly.py
+        custom-build-variant-cfg: aarch64-beta-pgo
+
 android-x86_64/opt:
     description: "Android 5.0 x86-64 Opt"
     index:
         job-name: android-x86_64-opt
     attributes:
         enable-full-crashsymbols: true
     treeherder:
         platform: android-5-0-x86_64/opt
@@ -329,16 +497,44 @@ android-x86_64-nightly/opt:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
     run:
         actions: [get-secrets, build, multi-l10n]
         config:
             - builds/releng_base_android_64_builds.py
             - taskcluster_nightly.py
         custom-build-variant-cfg: x86_64
 
+android-x86_64-beta/opt:
+    description: "Android 5.0 x86-64 Beta"
+    attributes:
+        nightly: true
+        enable-full-crashsymbols: true
+    shipping-phase: build
+    shipping-product: fennec
+    index:
+        job-name: android-x86_64-beta-opt
+        type: android-nightly
+    treeherder:
+        platform: android-5-0-x86_64-beta/opt
+        symbol: N
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build, multi-l10n]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - taskcluster_nightly.py
+        custom-build-variant-cfg: x86_64-beta
+
 android-x86_64/debug:
     description: "Android 5.0 x86-64 Debug"
     index:
         job-name: android-x86_64-debug
     attributes:
         enable-full-crashsymbols: true
     treeherder:
         platform: android-5-0-x86_64/debug
@@ -348,10 +544,31 @@ android-x86_64/debug:
         env:
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
     run:
         actions: [get-secrets, build]
         config: ["builds/releng_base_android_64_builds.py"]
         custom-build-variant-cfg: x86_64-debug
     toolchains:
         - linux64-sccache
-        - linux64-nasm
-        - linux64-node
+
+android-x86_64-beta/debug:
+    description: "Android 5.0 x86-64 Beta Debug"
+    index:
+        job-name: android-x86_64-beta-debug
+    treeherder:
+        platform: android-5-0-x86_64-beta/debug
+        symbol: B
+    worker-type: b-linux
+    worker:
+        env:
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
+        artifacts:
+            - name: public/build/target.maven.zip
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
+              type: file
+    run:
+        actions: [get-secrets, build]
+        config: ["builds/releng_base_android_64_builds.py"]
+        custom-build-variant-cfg: x86_64-beta-debug
+        update-channel: beta
+    toolchains:
+        - linux64-sccache
--- a/taskcluster/ci/generate-profile/kind.yml
+++ b/taskcluster/ci/generate-profile/kind.yml
@@ -84,8 +84,44 @@ jobs:
             job-script: taskcluster/scripts/tester/test-linux.sh
             script: android_emulator_pgo.py
             tooltool-downloads: internal
             options: [installer-path=/builds/worker/fetches/target.apk]
             config:
                 - android/android_common.py
                 - android/androidarm_4_3.py
                 - android/android_pgo.py
+
+    android-api-16-beta/pgo:
+        description: "Android 4.0 api-16+ Beta Profile Generation"
+        shipping-phase: build
+        shipping-product: fennec
+        index:
+            product: mobile
+            job-name: android-api-16-beta-profile
+        treeherder:
+            platform: android-4-0-armv7-api16-beta/pgo
+        worker-type: t-linux-xlarge-pgo
+        worker:
+            max-run-time: 5400
+            docker-image: {in-tree: desktop1604-test}
+            env:
+                WORKSPACE: "/builds/worker/workspace"
+                WORKING_DIR: "/builds/worker"
+                MOZHARNESS_PATH: "/builds/worker/workspace/build/src/testing/mozharness"
+            artifacts:
+                - type: file
+                  name: public/build/profdata.tar.xz
+                  path: /builds/worker/artifacts/profdata.tar.xz
+                - type: directory
+                  name: public/build
+                  path: /builds/worker/artifacts/blobber_upload_dir
+        run:
+            using: mozharness
+            need-xvfb: true
+            job-script: taskcluster/scripts/tester/test-linux.sh
+            script: android_emulator_pgo.py
+            tooltool-downloads: internal
+            options: [installer-path=/builds/worker/fetches/target.apk]
+            config:
+                - android/android_common.py
+                - android/androidarm_4_3.py
+                - android/android_pgo.py
--- a/taskcluster/ci/instrumented-build/kind.yml
+++ b/taskcluster/ci/instrumented-build/kind.yml
@@ -95,8 +95,55 @@ jobs:
             - android-sdk-linux
             - linux64-clang-android-cross
             - linux64-rust-android
             - linux64-rust-size
             - linux64-cbindgen
             - linux64-sccache
             - linux64-nasm
             - linux64-node
+
+    android-api-16-beta/pgo:
+        description: "Android 4.0 api-16+ Beta PGO instrumented"
+        shipping-phase: build
+        shipping-product: fennec
+        attributes:
+            enable-full-crashsymbols: true
+        treeherder:
+            platform: android-4-0-armv7-api16-beta/pgo
+        worker-type: b-linux
+        worker:
+            docker-image: {in-tree: android-build}
+            max-run-time: 7200
+            env:
+                GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
+                TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
+                PERFHERDER_EXTRA_OPTIONS: instrumented
+            artifacts:
+                - name: public/build
+                  path: /builds/worker/artifacts/
+                  type: directory
+                - name: public/build/geckoview-androidTest.apk
+                  path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
+                  type: file
+                - name: public/build/geckoview_example.apk
+                  path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
+                  type: file
+        run:
+            using: mozharness
+            actions: [get-secrets, build]
+            config:
+                - builds/releng_base_android_64_builds.py
+            script: "mozharness/scripts/fx_desktop_build.py"
+            secrets: true
+            custom-build-variant-cfg: api-16-profile-generate
+            tooltool-downloads: internal
+        toolchains:
+            - android-gradle-dependencies
+            - android-ndk-linux
+            - android-sdk-linux
+            - linux64-clang-android-cross
+            - linux64-rust-android
+            - linux64-rust-size
+            - linux64-cbindgen
+            - linux64-sccache
+            - linux64-nasm
+            - linux64-node
--- a/taskcluster/taskgraph/manifests/fennec_candidates_checksums.yml
+++ b/taskcluster/taskgraph/manifests/fennec_candidates_checksums.yml
@@ -6,26 +6,26 @@ s3_bucket_paths:
     - pub/mobile/candidates
 default_locales:  # if given an empty locale, use these locales
     - en-US
 tasktype_map:  # Map task reference to task type.
     checksums-signing: signing
 platform_names:
     path_platform:
         by-platform:
-            android-x86-nightly: 'android-x86'
-            android-x86_64-nightly: 'android-x86_64'
-            android-api-16-nightly: 'android-api-16'
-            android-aarch64-nightly: 'android-aarch64'
+            android-x86-(nightly|beta): 'android-x86'
+            android-x86_64-(nightly|beta): 'android-x86_64'
+            android-api-16-(nightly|beta): 'android-api-16'
+            android-aarch64-(nightly|beta): 'android-aarch64'
     filename_platform:
         by-platform:
-            android-x86-nightly: 'android-i386'
-            android-x86_64-nightly: 'android-x86_64'
-            android-api-16-nightly: 'android-arm'
-            android-aarch64-nightly: 'android-aarch64'
+            android-x86-(nightly|beta): 'android-i386'
+            android-x86_64-(nightly|beta): 'android-x86_64'
+            android-api-16-(nightly|beta): 'android-arm'
+            android-aarch64-(nightly|beta): 'android-aarch64'
 
 # A default entry, which the mappings below extend and override.
 # Final 'destinations' will be the product of:
 # s3_bucket_paths + destinations + locale_prefix + pretty_name
 default: &default
     from:
         - checksums-signing
     all_locales: true
--- a/taskcluster/taskgraph/manifests/fennec_nightly.yml
+++ b/taskcluster/taskgraph/manifests/fennec_nightly.yml
@@ -9,26 +9,26 @@ default_locales:  # if given an empty lo
     - multi
 tasktype_map:  # Map task reference to task type.
     build: build
     build-signing: signing
     nightly-l10n-signing: signing
 platform_names:
     path_platform:
         by-platform:
-            android-x86-nightly: 'android-x86'
-            android-x86_64-nightly: 'android-x86_64'
-            android-api-16-nightly: 'android-api-16'
-            android-aarch64-nightly: 'android-aarch64'
+            android-x86-(nightly|beta): 'android-x86'
+            android-x86_64-(nightly|beta): 'android-x86_64'
+            android-api-16-(nightly|beta): 'android-api-16'
+            android-aarch64-(nightly|beta): 'android-aarch64'
     filename_platform:
         by-platform:
-            android-x86-nightly: 'android-i386'
-            android-x86_64-nightly: 'android-x86_64'
-            android-api-16-nightly: 'android-arm'
-            android-aarch64-nightly: 'android-aarch64'
+            android-x86-(nightly|beta): 'android-i386'
+            android-x86_64-(nightly|beta): 'android-x86_64'
+            android-api-16-(nightly|beta): 'android-arm'
+            android-aarch64-(nightly|beta): 'android-aarch64'
 
 # A default entry, which the mappings below extend and override.
 # Final 'destinations' will be the product of:
 # s3_bucket_paths + destinations + locale_prefix + pretty_name
 default: &default
     from:
         - build
     all_locales: false
--- a/taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
+++ b/taskcluster/taskgraph/manifests/fennec_nightly_checksums.yml
@@ -6,26 +6,26 @@ s3_bucket_paths:
     - pub/mobile/nightly
 default_locales:  # if given an empty locale, use these locales
     - en-US
 tasktype_map:  # Map task reference to task type.
     checksums-signing: signing
 platform_names:
     path_platform:
         by-platform:
-            android-x86-nightly: 'android-x86'
-            android-x86_64-nightly: 'android-x86_64'
-            android-api-16-nightly: 'android-api-16'
-            android-aarch64-nightly: 'android-aarch64'
+            android-x86-(nightly|beta): 'android-x86'
+            android-x86_64-(nightly|beta): 'android-x86_64'
+            android-api-16-(nightly|beta): 'android-api-16'
+            android-aarch64-(nightly|beta): 'android-aarch64'
     filename_platform:
         by-platform:
-            android-x86-nightly: 'android-i386'
-            android-x86_64-nightly: 'android-x86_64'
-            android-api-16-nightly: 'android-arm'
-            android-aarch64-nightly: 'android-aarch64'
+            android-x86-(nightly|beta): 'android-i386'
+            android-x86_64-(nightly|beta): 'android-x86_64'
+            android-api-16-(nightly|beta): 'android-arm'
+            android-aarch64-(nightly|beta): 'android-aarch64'
 
 # A default entry, which the mappings below extend and override.
 # Final 'destinations' will be the product of:
 # s3_bucket_paths + destinations + locale_prefix + pretty_name
 default: &default
     from:
         - checksums-signing
     all_locales: true
--- a/taskcluster/taskgraph/transforms/beetmover_geckoview.py
+++ b/taskcluster/taskgraph/transforms/beetmover_geckoview.py
@@ -22,16 +22,20 @@ from taskgraph.transforms.task import ta
 from voluptuous import Required, Optional
 
 
 _ARTIFACT_ID_PER_PLATFORM = {
     'android-aarch64': 'geckoview{update_channel}-arm64-v8a',
     'android-api-16': 'geckoview{update_channel}-armeabi-v7a',
     'android-x86': 'geckoview{update_channel}-x86',
     'android-x86_64': 'geckoview{update_channel}-x86_64',
+    'android-aarch64-beta': 'geckoview-beta-arm64-v8a',
+    'android-api-16-beta': 'geckoview-beta-armeabi-v7a',
+    'android-x86-beta': 'geckoview-beta-x86',
+    'android-x86_64-beta': 'geckoview-beta-x86_64',
 }
 
 _MOZ_UPDATE_CHANNEL_PER_BRANCH = {
     'mozilla-release': '',
     'mozilla-beta': '-beta',
     'mozilla-central': '-nightly',
     'try': '-nightly-try',
     'maple': '-nightly-maple',
--- a/taskcluster/taskgraph/util/scriptworker.py
+++ b/taskcluster/taskgraph/util/scriptworker.py
@@ -551,17 +551,17 @@ def generate_beetmover_artifact_map(conf
     Returns:
         list: A list of dictionaries containing source->destination
             maps for beetmover.
     """
     platform = kwargs.get('platform', '')
     resolve_keyed_by(
         job, 'attributes.artifact_map',
         'artifact map',
-        project=config.params['project'],
+        release_type=config.params['release_type'],
         platform=platform
     )
     map_config = deepcopy(cached_load_yaml(job['attributes']['artifact_map']))
     base_artifact_prefix = map_config.get('base_artifact_prefix', get_artifact_prefix(job))
 
     artifacts = list()
 
     dependencies = job['dependencies'].keys()
copy from testing/mozharness/configs/builds/releng_sub_android_configs/64_aarch64_pgo.py
copy to testing/mozharness/configs/builds/releng_sub_android_configs/64_aarch64_beta_pgo.py
--- a/testing/mozharness/configs/builds/releng_sub_android_configs/64_aarch64_pgo.py
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_aarch64_beta_pgo.py
@@ -1,5 +1,5 @@
 config = {
     'stage_platform': 'android-aarch64-pgo',
-    'src_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/profile-use',
+    'src_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/beta-profile-use',
     'multi_locale_config_platform': 'android',
 }
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -374,16 +374,17 @@ class BuildOptionParser(object):
         'x86_64-beta': 'builds/releng_sub_%s_configs/%s_x86_64_beta.py',
         'x86_64-beta-debug': 'builds/releng_sub_%s_configs/%s_x86_64_beta_debug.py',
         'x86_64-debug': 'builds/releng_sub_%s_configs/%s_x86_64_debug.py',
         'api-16-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_16_partner_sample1.py',
         'aarch64': 'builds/releng_sub_%s_configs/%s_aarch64.py',
         'aarch64-beta': 'builds/releng_sub_%s_configs/%s_aarch64_beta.py',
         'aarch64-beta-debug': 'builds/releng_sub_%s_configs/%s_aarch64_beta_debug.py',
         'aarch64-pgo': 'builds/releng_sub_%s_configs/%s_aarch64_pgo.py',
+        'aarch64-beta-pgo': 'builds/releng_sub_%s_configs/%s_aarch64_beta_pgo.py',
         'aarch64-debug': 'builds/releng_sub_%s_configs/%s_aarch64_debug.py',
         'android-test': 'builds/releng_sub_%s_configs/%s_test.py',
         'android-test-ccov': 'builds/releng_sub_%s_configs/%s_test_ccov.py',
         'android-checkstyle': 'builds/releng_sub_%s_configs/%s_checkstyle.py',
         'android-api-lint': 'builds/releng_sub_%s_configs/%s_api_lint.py',
         'android-lint': 'builds/releng_sub_%s_configs/%s_lint.py',
         'android-findbugs': 'builds/releng_sub_%s_configs/%s_findbugs.py',
         'android-geckoview-docs': 'builds/releng_sub_%s_configs/%s_geckoview_docs.py',