[build] Integration-testing-fix#7
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Identified problems with the pipeline:
This default was fine years ago but the action kept it for backwards compatibility.
the ABI→platform mapping is:
arm64-v8a → android_arm64
armeabi-v7a → android_arm
x86_64 → android_x64
(anything else, including bare x86) → TargetPlatform.unsupported
The emulator boots fine — that's a KVM/Android concern, not a Flutter one.
But when flutter test integration_test scans for a deploy target, it sees ABI x86, falls through
to the default branch, tags the device unsupported, and exits with "No supported devices connected."
Then, job fails.
Adding
arch: x86_64pins the emulater to the 64-bit Intel ABI, which will map toandroid_x64.Identifed problem with the testing process:
Jetifier is a Gradle artifact transform that rewrites legacy android.support.bytecode into androidx..
It loads each dependency JAR fully into memory.
The Flutter engine JAR (io.flutter:x86_64_debug) is large enough that the transform exhausts the 1.5GB
heap on the GitHub runner and aborts with java.nio.file.Files$...Java heap space.
Jetifier is obsolete for this project: every dependency in pubspec.yaml is AndroidX-native
(As per research, Flutter itself has been AndroidX-only since 2020;).
Nothing in the dependency graph references the old android.support.* packages,
so the Jetifier transform does work that nobody needs — and in CI it does that work until it OOMs.