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
63 lines
2.7 KiB
YAML
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'
|