Files
Julien Cristau e10bbf0dae Bug 2062847 - Let the android-gradle-build python tests use non-shippable artifact builds r=firefox-build-system-reviewers,sergesanspaille
The android-gradle-build python tests run artifact builds, but
`mach artifact install` only searches the `.shippable` index for opt
builds. For each of the 50 candidate pushheads it looks up
`gecko.v2.autoland.shippable.revision.<rev>.mobile.android-<arch>-opt`.
Shippable Android builds aren't scheduled by default on autoland, so when
none of the last 50 autoland pushes ran a shippable build, the search
comes up empty, fails with "no built artifacts found", and every
artifact-build test in the suite fails at once. It passes only when one
of those 50 pushes happens to have a shippable Android build, which is
why it shows up as an intermittent.

Add a MOZ_ARTIFACT_ALLOW_NON_SHIPPABLE environment variable that makes
the index lookup fall back to the regular per-push opt build when no
shippable build is found, and set it for the android-gradle-build task.
The shippable index is still tried first, so branches that only publish
shippable builds (central, beta, release, esr) keep resolving to those.

Differential Revision: https://phabricator.services.mozilla.com/D324866
2026-09-11 18:14:40 +00:00

63 lines
2.7 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/.
---
android-gradle-build:
attributes:
build_platform: android
build_type: opt
description: Android Gradle Build python tests
platform:
- linux2404-64/opt
treeherder:
symbol: py3(agb)
kind: test
tier: 2
worker-type: t-linux-docker
worker:
docker-image: {in-tree: android-build}
env:
GRADLE_USER_HOME: /builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline
MOZ_OBJDIR: obj-firefox
PERFHERDER_EXTRA_OPTIONS: android-gradle-build
TINDERBOX_OUTPUT: '1'
# The tests run artifact builds. Let `mach artifact install` accept
# the regular (non-shippable) Android opt builds, which run on every
# integration push, instead of only the shippable index. Shippable
# Android builds are release-only, so on autoland the shippable
# index is almost always empty and the pushhead search fails with
# "no built artifacts found" (bug 2062847).
MOZ_ARTIFACT_ALLOW_NON_SHIPPABLE: '1'
max-run-time: 7200
run-on-repo-type: [hg]
run:
clone-with: hg
using: run-task
command: >
ln -s $MOZ_FETCHES_DIR/android-gradle-dependencies $GECKO_PATH &&
ln -s $MOZ_FETCHES_DIR/android-sdk-linux $GECKO_PATH &&
ln -s $MOZ_FETCHES_DIR/node $GECKO_PATH &&
cd $GECKO_PATH &&
export GRADLE_MAVEN_REPOSITORIES="file://$MOZ_FETCHES_DIR/android-gradle-dependencies/mozilla","file://$MOZ_FETCHES_DIR/android-gradle-dependencies/google","file://$MOZ_FETCHES_DIR/android-gradle-dependencies/central","file://$MOZ_FETCHES_DIR/android-gradle-dependencies/gradle-plugins" &&
./mach --log-no-times python-test --subsuite android-gradle-build --run-slow
tooltool-downloads: internal # For internal toolchains.
fetches:
toolchain:
# Aliases aren't allowed for toolchains installed by fetch.
- linux64-android-gradle-dependencies
- linux64-android-sdk-linux-repack
- linux64-embedded-uniffi-bindgen
- linux64-nimbus-fml
- linux64-jdk-repack
- linux64-node
- terser
when:
files-changed:
# Build stuff.
- 'mobile/android/**/Makefile.in'
- 'mobile/android/config/**'
- 'mobile/android/gradle.configure'
- 'mobile/android/**/moz.build'
- '**/*.gradle'