Bug 1383973 - Use `run: using` and build transforms to avoid tc-vcs in android-* tasks. r=dustin draft
authorNick Alexander <nalexander@mozilla.com>
Tue, 01 Aug 2017 11:08:14 -0700
changeset 645257 2b51e02cd4f77675c42435708c3a579539e6108e
parent 645256 f94e6b9b780f96038c60d3825039a0f94add0404
child 725870 7a0589ec90212a18627c177567a5528097b1e552
push id73719
push usernalexander@mozilla.com
push dateSat, 12 Aug 2017 03:10:52 +0000
reviewersdustin
bugs1383973
milestone57.0a1
Bug 1383973 - Use `run: using` and build transforms to avoid tc-vcs in android-* tasks. r=dustin MozReview-Commit-ID: aENMcIbglQ
taskcluster/ci/android-stuff/kind.yml
taskcluster/ci/build/android-stuff.yml
taskcluster/ci/build/kind.yml
taskcluster/taskgraph/transforms/android_stuff.py
taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
rename from taskcluster/ci/android-stuff/kind.yml
rename to taskcluster/ci/build/android-stuff.yml
--- a/taskcluster/ci/android-stuff/kind.yml
+++ b/taskcluster/ci/build/android-stuff.yml
@@ -1,307 +1,250 @@
-# 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/.
-
-# The name of this kind should suggest it's not meant to be permanent.  This is
-# a temporary place to generate these tasks in Bug 1286075 until they are
-# rewritten in a better way.
-
-loader: taskgraph.loader.transform:loader
-
-kind-dependencies:
-   - toolchain
-
-transforms:
-   - taskgraph.transforms.toolchain:transforms
-   - taskgraph.transforms.try_job:transforms
-   - taskgraph.transforms.android_stuff:transforms
-   - taskgraph.transforms.task:transforms
+android-dependencies/opt:
+    description: "Android armv7 API 15+ gradle dependencies"
+    index:
+        product: mobile
+        job-name: android-dependencies
+    treeherder:
+        platform: android-4-0-armv7-api15/opt
+        kind: build
+        tier: 2
+        symbol: tc(Deps)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-android
+    worker:
+        docker-image: {in-tree: android-gradle-build}
+        env:
+            GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle-online"
+            PERFHERDER_EXTRA_OPTIONS: android-dependencies
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-gradle-dependencies/releng.manifest"
+        artifacts:
+          - name: public/build
+            path: /home/worker/artifacts/
+            type: directory
+          - name: private/android-sdk
+            path: /home/worker/private/android-sdk
+            type: directory
+          - name: private/java_home
+            path: /home/worker/private/java_home
+            type: directory
+        max-run-time: 36000
+    run:
+        using: mozharness
+        actions: [get-secrets build multi-l10n update]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - disable_signing.py
+            - platform_supports_post_upload_to_latest.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: api-15-gradle-dependencies
+        tooltool-downloads: internal
+        job-script: taskcluster/scripts/builder/build-android-dependencies.sh
+    optimizations:
+      - - skip-unless-changed
+        - - "mobile/android/config/**"
+          - "testing/mozharness/configs/builds/releng_sub_android_configs/*gradle_dependencies.py"
+          - "**/*.gradle"
+          - "taskcluster/docker/android-gradle-build/**"
 
-jobs:
-    android-api-15-gradle-dependencies:
-        description: "Android armv7 API 15+ gradle dependencies"
-        index:
-            product: mobile
-            job-name: android-api-15-gradle-dependencies-opt
-        treeherder:
-            platform: android-4-0-armv7-api15/opt
-            kind: other
-            tier: 2
-            symbol: tc(Deps)
-        worker-type: aws-provisioner-v1/gecko-{level}-b-android
-        worker:
-            implementation: docker-worker
-            os: linux
-            docker-image: {in-tree: android-gradle-build}
-            env:
-                GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle-online"
-                MH_BUILD_POOL: "taskcluster"
-                MH_CUSTOM_BUILD_VARIANT_CFG: "api-15-gradle-dependencies"
-                MOZHARNESS_ACTIONS: "get-secrets build multi-l10n update"
-                MOZHARNESS_CONFIG: >
-                    builds/releng_base_android_64_builds.py
-                    disable_signing.py
-                    platform_supports_post_upload_to_latest.py
-                MOZHARNESS_SCRIPT: "mozharness/scripts/fx_desktop_build.py"
-                TOOLTOOL_CACHE: "/home/worker/tooltool-cache"
-                TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-gradle-dependencies/releng.manifest"
-            artifacts:
-              - name: public/build
-                path: /home/worker/artifacts/
-                type: directory
-              - name: private/android-sdk
-                path: /home/worker/private/android-sdk
-                type: directory
-              - name: private/java_home
-                path: /home/worker/private/java_home
-                type: directory
-            caches:
-              - name: tooltool-cache
-                mount-point: /home/worker/tooltool-cache
-                type: persistent
-            relengapi-proxy: true
-            command:
-              - "/bin/bash"
-              - "-c"
-              - "/home/worker/bin/before.sh && /home/worker/bin/build.sh && /home/worker/bin/after.sh && true\n"
-            max-run-time: 36000
-        scopes:
-          - docker-worker:relengapi-proxy:tooltool.download.internal
-          - docker-worker:relengapi-proxy:tooltool.download.public
-        optimizations:
-          - - skip-unless-changed
-            - - "mobile/android/config/**"
-              - "testing/mozharness/configs/builds/releng_sub_android_configs/*gradle_dependencies.py"
-              - "**/*.gradle"
-              - "taskcluster/docker/android-gradle-build/**"
-
-    android-test:
-        description: "Android armv7 unit tests"
-        treeherder:
-            platform: android-4-0-armv7-api15/opt
-            kind: test
-            tier: 2
-            symbol: tc(test)
-        worker-type: aws-provisioner-v1/gecko-{level}-b-android
-        worker:
-            implementation: docker-worker
-            os: linux
-            docker-image: {in-tree: desktop-build}
-            env:
-                GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
-                MH_BUILD_POOL: "taskcluster"
-                MH_CUSTOM_BUILD_VARIANT_CFG: "android-test"
-                MOZHARNESS_ACTIONS: "get-secrets build multi-l10n update"
-                MOZHARNESS_CONFIG: >
-                    builds/releng_base_android_64_builds.py
-                    disable_signing.py
-                    platform_supports_post_upload_to_latest.py
-                MOZHARNESS_SCRIPT: "mozharness/scripts/fx_desktop_build.py"
-                TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
-            artifacts:
-              - name: public/android/unittest
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/tests
-                type: directory
-              - name: public/build
-                path: /home/worker/artifacts/
-                type: directory
-            caches:
-              - name: tooltool-cache
-                mount-point: /home/worker/tooltool-cache
-                type: persistent
-            relengapi-proxy: true
-            command:
-              # NOTE: this could probably be a job description with run.using = 'mozharness'
-              - "/bin/bash"
-              - "bin/build.sh"
-            max-run-time: 36000
-        scopes:
-          - docker-worker:relengapi-proxy:tooltool.download.internal
-          - docker-worker:relengapi-proxy:tooltool.download.public
-        optimizations:
-          - - skip-unless-changed
-            - - "mobile/android/base/**"
-              - "mobile/android/tests/background/junit4/**"
+android-test/opt:
+    description: "Android armv7 unit tests"
+    index:
+        product: mobile
+        job-name: android-test
+    treeherder:
+        platform: android-4-0-armv7-api15/opt
+        kind: build
+        tier: 2
+        symbol: tc(test)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-android
+    worker:
+        docker-image: {in-tree: desktop-build}
+        env:
+            GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
+            PERFHERDER_EXTRA_OPTIONS: android-test
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
+        artifacts:
+          - name: public/android/unittest
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/tests
+            type: directory
+          - name: public/build
+            path: /home/worker/artifacts/
+            type: directory
+        max-run-time: 36000
+    run:
+        using: mozharness
+        actions: [get-secrets build multi-l10n update]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - disable_signing.py
+            - platform_supports_post_upload_to_latest.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: android-test
+        tooltool-downloads: internal
+    optimizations:
+      - - skip-unless-changed
+        - - "mobile/android/base/**"
+          - "mobile/android/tests/background/junit4/**"
+          - "**/*.gradle"
 
-    android-lint:
-        description: "Android lint"
-        treeherder:
-            platform: android-4-0-armv7-api15/opt
-            kind: test
-            tier: 2
-            symbol: tc(lint)
-        worker-type: aws-provisioner-v1/gecko-{level}-b-android
-        worker:
-            implementation: docker-worker
-            os: linux
-            docker-image: {in-tree: desktop-build}
-            env:
-                GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
-                MH_BUILD_POOL: "taskcluster"
-                MH_CUSTOM_BUILD_VARIANT_CFG: "android-lint"
-                MOZHARNESS_ACTIONS: "get-secrets build multi-l10n update"
-                MOZHARNESS_CONFIG: >
-                    builds/releng_base_android_64_builds.py
-                    disable_signing.py
-                    platform_supports_post_upload_to_latest.py
-                MOZHARNESS_SCRIPT: "mozharness/scripts/fx_desktop_build.py"
-                TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
-            artifacts:
-              - name: public/android/lint/lint-results-officialAustralisDebug.html
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialAustralisDebug.html
-                type: file
-              - name: public/android/lint/lint-results-officialAustralisDebug.xml
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialAustralisDebug.xml
-                type: file
-              - name: public/android/lint/lint-results-officialAustralisDebug_files
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialAustralisDebug_files
-                type: directory
-              - name: public/android/lint/lint-results-officialPhotonDebug.html
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialPhotonDebug.html
-                type: file
-              - name: public/android/lint/lint-results-officialPhotonDebug.xml
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialPhotonDebug.xml
-                type: file
-              - name: public/android/lint/lint-results-officialPhotonDebug_files
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialPhotonDebug_files
-                type: directory
-              - name: public/build
-                path: /home/worker/artifacts/
-                type: directory
-            caches:
-              - name: tooltool-cache
-                mount-point: /home/worker/tooltool-cache
-                type: persistent
-            relengapi-proxy: true
-            command:
-              # NOTE: this could probably be a job description with run.using = 'mozharness'
-              - "/bin/bash"
-              - "bin/build.sh"
-            max-run-time: 36000
-        scopes:
-          - docker-worker:relengapi-proxy:tooltool.download.internal
-          - docker-worker:relengapi-proxy:tooltool.download.public
-        optimizations:
-          - - skip-unless-changed
-            - - "mobile/android/**/*.java"
-              - "mobile/android/**/*.jpeg"
-              - "mobile/android/**/*.jpg"
-              - "mobile/android/**/*.png"
-              - "mobile/android/**/*.svg"
-              - "mobile/android/**/*.xml" # Manifest & android resources
-              - "mobile/android/**/*.gradle"
-              - "mobile/android/**/Makefile.in"
-              - "mobile/android/**/moz.build"
+android-lint/opt:
+    description: "Android lint"
+    index:
+        product: mobile
+        job-name: android-lint
+    treeherder:
+        platform: android-4-0-armv7-api15/opt
+        kind: build
+        tier: 2
+        symbol: tc(lint)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-android
+    worker:
+        docker-image: {in-tree: desktop-build}
+        env:
+            GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
+            PERFHERDER_EXTRA_OPTIONS: android-lint
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
+        artifacts:
+          - name: public/android/lint/lint-results-officialAustralisDebug.html
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialAustralisDebug.html
+            type: file
+          - name: public/android/lint/lint-results-officialAustralisDebug.xml
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialAustralisDebug.xml
+            type: file
+          - name: public/android/lint/lint-results-officialAustralisDebug_files
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialAustralisDebug_files
+            type: directory
+          - name: public/android/lint/lint-results-officialPhotonDebug.html
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialPhotonDebug.html
+            type: file
+          - name: public/android/lint/lint-results-officialPhotonDebug.xml
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialPhotonDebug.xml
+            type: file
+          - name: public/android/lint/lint-results-officialPhotonDebug_files
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/lint-results-officialPhotonDebug_files
+            type: directory
+          - name: public/build
+            path: /home/worker/artifacts/
+            type: directory
+        max-run-time: 36000
+    run:
+        using: mozharness
+        actions: [get-secrets build multi-l10n update]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - disable_signing.py
+            - platform_supports_post_upload_to_latest.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: android-lint
+        tooltool-downloads: internal
+    optimizations:
+      - - skip-unless-changed
+        - - "mobile/android/**/*.java"
+          - "mobile/android/**/*.jpeg"
+          - "mobile/android/**/*.jpg"
+          - "mobile/android/**/*.png"
+          - "mobile/android/**/*.svg"
+          - "mobile/android/**/*.xml" # Manifest & android resources
+          - "mobile/android/**/Makefile.in"
+          - "mobile/android/**/moz.build"
+          - "**/*.gradle"
 
-    android-checkstyle:
-        description: "Android checkstyle"
-        treeherder:
-            platform: android-4-0-armv7-api15/opt
-            kind: test
-            tier: 2
-            symbol: tc(checkstyle)
-        worker-type: aws-provisioner-v1/gecko-{level}-b-android
-        worker:
-            implementation: docker-worker
-            os: linux
-            docker-image: {in-tree: desktop-build}
-            env:
-                GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
-                MH_BUILD_POOL: "taskcluster"
-                MH_CUSTOM_BUILD_VARIANT_CFG: "android-checkstyle"
-                MOZHARNESS_ACTIONS: "get-secrets build multi-l10n update"
-                MOZHARNESS_CONFIG: >
-                    builds/releng_base_android_64_builds.py
-                    disable_signing.py
-                    platform_supports_post_upload_to_latest.py
-                MOZHARNESS_SCRIPT: "mozharness/scripts/fx_desktop_build.py"
-                TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
-            artifacts:
-              - name: public/android/checkstyle/checkstyle.html
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/checkstyle/checkstyle.html
-                type: file
-              - name: public/android/checkstyle/checkstyle.xml
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/checkstyle/checkstyle.xml
-                type: file
-              - name: public/build
-                path: /home/worker/artifacts/
-                type: directory
-            caches:
-              - name: tooltool-cache
-                mount-point: /home/worker/tooltool-cache
-                type: persistent
-            relengapi-proxy: true
-            command:
-              # NOTE: this could probably be a job description with run.using = 'mozharness'
-              - "/bin/bash"
-              - "bin/build.sh"
-            max-run-time: 36000
-        scopes:
-          - docker-worker:relengapi-proxy:tooltool.download.internal
-          - docker-worker:relengapi-proxy:tooltool.download.public
-        optimizations:
-          - - skip-unless-changed
-            - - "mobile/android/**/checkstyle.xml"
-              - "mobile/android/**/*.java"
-              - "mobile/android/**/*.gradle"
-              - "mobile/android/**/Makefile.in"
-              - "mobile/android/**/moz.build"
+android-checkstyle/opt:
+    description: "Android checkstyle"
+    index:
+        product: mobile
+        job-name: android-checkstyle
+    treeherder:
+        platform: android-4-0-armv7-api15/opt
+        kind: build
+        tier: 2
+        symbol: tc(checkstyle)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-android
+    worker:
+        docker-image: {in-tree: desktop-build}
+        env:
+            GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
+            PERFHERDER_EXTRA_OPTIONS: android-checkstyle
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
+        artifacts:
+          - name: public/android/checkstyle/checkstyle.html
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/checkstyle/checkstyle.html
+            type: file
+          - name: public/android/checkstyle/checkstyle.xml
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/checkstyle/checkstyle.xml
+            type: file
+          - name: public/build
+            path: /home/worker/artifacts/
+            type: directory
+        max-run-time: 36000
+    run:
+        using: mozharness
+        actions: [get-secrets build multi-l10n update]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - disable_signing.py
+            - platform_supports_post_upload_to_latest.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: android-checkstyle
+        tooltool-downloads: internal
+    optimizations:
+      - - skip-unless-changed
+        - - "mobile/android/**/checkstyle.xml"
+          - "mobile/android/**/*.java"
+          - "mobile/android/**/Makefile.in"
+          - "mobile/android/**/moz.build"
+          - "**/*.gradle"
 
-    android-findbugs:
-        description: "Android findbugs"
-        treeherder:
-            platform: android-4-0-armv7-api15/opt
-            kind: test
-            tier: 2
-            symbol: tc(findbugs)
-        worker-type: aws-provisioner-v1/gecko-{level}-b-android
-        worker:
-            implementation: docker-worker
-            os: linux
-            docker-image: {in-tree: desktop-build}
-            env:
-                GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
-                MH_BUILD_POOL: "taskcluster"
-                MH_CUSTOM_BUILD_VARIANT_CFG: "android-findbugs"
-                MOZHARNESS_ACTIONS: "get-secrets build multi-l10n update"
-                MOZHARNESS_CONFIG: >
-                    builds/releng_base_android_64_builds.py
-                    disable_signing.py
-                    platform_supports_post_upload_to_latest.py
-                MOZHARNESS_SCRIPT: "mozharness/scripts/fx_desktop_build.py"
-                TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
-            artifacts:
-              - name: public/android/findbugs/findbugs-officialAustralisDebug-output.html
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialAustralisDebug-output.html
-                type: file
-              - name: public/android/findbugs/findbugs-officialAustralisDebug-output.xml
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialAustralisDebug-output.xml
-                type: file
-              - name: public/android/findbugs/findbugs-officialPhotonDebug-output.html
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialPhotonDebug-output.html
-                type: file
-              - name: public/android/findbugs/findbugs-officialPhotonDebug-output.xml
-                path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialPhotonDebug-output.xml
-                type: file
-              - name: public/build
-                path: /home/worker/artifacts/
-                type: directory
-            caches:
-              - name: tooltool-cache
-                mount-point: /home/worker/tooltool-cache
-                type: persistent
-            relengapi-proxy: true
-            command:
-              # NOTE: this could probably be a job description with run.using = 'mozharness'
-              - "/bin/bash"
-              - "bin/build.sh"
-            max-run-time: 36000
-        scopes:
-          - docker-worker:relengapi-proxy:tooltool.download.internal
-          - docker-worker:relengapi-proxy:tooltool.download.public
-        optimizations:
-          - - skip-unless-changed
-            - - "mobile/android/**/*.java"
-              - "mobile/android/**/*.gradle"
-              - "mobile/android/**/Makefile.in"
-              - "mobile/android/**/moz.build"
+android-findbugs/opt:
+    description: "Android findbugs"
+    index:
+        product: mobile
+        job-name: android-findbugs
+    treeherder:
+        platform: android-4-0-armv7-api15/opt
+        kind: build
+        tier: 2
+        symbol: tc(findbugs)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-android
+    worker:
+        docker-image: {in-tree: desktop-build}
+        env:
+            GRADLE_USER_HOME: "/home/worker/workspace/build/src/dotgradle"
+            PERFHERDER_EXTRA_OPTIONS: android-findbugs
+            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-frontend/releng.manifest"
+        artifacts:
+          - name: public/android/findbugs/findbugs-officialAustralisDebug-output.html
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialAustralisDebug-output.html
+            type: file
+          - name: public/android/findbugs/findbugs-officialAustralisDebug-output.xml
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialAustralisDebug-output.xml
+            type: file
+          - name: public/android/findbugs/findbugs-officialPhotonDebug-output.html
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialPhotonDebug-output.html
+            type: file
+          - name: public/android/findbugs/findbugs-officialPhotonDebug-output.xml
+            path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/outputs/findbugs/findbugs-officialPhotonDebug-output.xml
+            type: file
+          - name: public/build
+            path: /home/worker/artifacts/
+            type: directory
+        max-run-time: 36000
+    run:
+        using: mozharness
+        actions: [get-secrets build multi-l10n update]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - disable_signing.py
+            - platform_supports_post_upload_to_latest.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: android-findbugs
+        tooltool-downloads: internal
+    optimizations:
+      - - skip-unless-changed
+        - - "mobile/android/**/*.java"
+          - "mobile/android/**/Makefile.in"
+          - "mobile/android/**/moz.build"
+          - "**/*.gradle"
--- a/taskcluster/ci/build/kind.yml
+++ b/taskcluster/ci/build/kind.yml
@@ -12,13 +12,14 @@ transforms:
    - taskgraph.transforms.build_attrs:transforms
    - taskgraph.transforms.build_lints:transforms
    - taskgraph.transforms.toolchain:transforms
    - taskgraph.transforms.job:transforms
    - taskgraph.transforms.task:transforms
 
 jobs-from:
     - android.yml
+    - android-stuff.yml
     - linux.yml
     - macosx.yml
     - windows.yml
 
 parse-commit: taskgraph.try_option_syntax:parse_message
deleted file mode 100644
--- a/taskcluster/taskgraph/transforms/android_stuff.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# 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/.
-"""
-Set dynamic task description properties of the android stuff.  Temporary!
-"""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
-from taskgraph.transforms.base import TransformSequence
-from taskgraph.transforms.job.common import SECRET_SCOPE
-
-transforms = TransformSequence()
-
-
-@transforms.add
-def setup_task(config, tasks):
-    for task in tasks:
-        task['label'] = task['name']
-        env = task['worker'].setdefault('env', {})
-        env.update({
-            'GECKO_BASE_REPOSITORY': config.params['base_repository'],
-            'GECKO_HEAD_REF': config.params['head_rev'],
-            'GECKO_HEAD_REPOSITORY': config.params['head_repository'],
-            'GECKO_HEAD_REV': config.params['head_rev'],
-            'MOZ_BUILD_DATE': config.params['moz_build_date'],
-            'MOZ_SCM_LEVEL': config.params['level'],
-            'MH_BRANCH': config.params['project'],
-        })
-
-        task['worker'].setdefault('caches', []).append({
-            'type': 'persistent',
-            'name': 'level-{}-{}-tc-vcs'.format(
-                config.params['level'], config.params['project']),
-            'mount-point': "/home/worker/.tc-vcs",
-        })
-
-        if int(config.params['level']) > 1:
-            task['worker'].setdefault('caches', []).append({
-                'type': 'persistent',
-                'name': 'level-{}-{}-build-{}-workspace'.format(
-                    config.params['level'], config.params['project'], task['name']),
-                'mount-point': "/home/worker/workspace",
-            })
-
-        # Need appropriate scopes for secrets, from the 'build' section
-        task['worker']['taskcluster-proxy'] = True
-        task['scopes'].append(SECRET_SCOPE.format(
-            'build', config.params['level'], '*'))
-
-        del task['name']
-        yield task
--- a/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
+++ b/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
@@ -13,22 +13,26 @@ Once all jobs have been ported from Buil
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 # please keep me in lexical order
 JOB_NAME_WHITELIST = set([
     'android-aarch64-opt',
     'android-api-15-debug',
-    'android-api-15-gradle-dependencies-opt',
     'android-api-15-gradle-opt',
+    'android-api-15-old-id-opt',
     'android-api-15-opt',
-    'android-api-15-old-id-opt',
+    'android-checkstyle',
+    'android-dependencies',
+    'android-findbugs',
+    'android-lint',
+    'android-test',
+    'android-x86-old-id-opt',
     'android-x86-opt',
-    'android-x86-old-id-opt',
     'browser-haz-debug',
     'linux-debug',
     'linux-devedition',
     'linux-opt',
     'linux-pgo',
     'linux64-add-on-devel',
     'linux64-artifact-opt',
     'linux64-asan-debug',