Skip to content

feat: Add Android test runs to CI workflow#26

Merged
vik-borisov merged 9 commits into
mainfrom
feat/add-android-tests
Jan 1, 2026
Merged

feat: Add Android test runs to CI workflow#26
vik-borisov merged 9 commits into
mainfrom
feat/add-android-tests

Conversation

@vik-borisov

@vik-borisov vik-borisov commented Jan 1, 2026

Copy link
Copy Markdown
Contributor

Description

Added Android test execution to the CI workflow with support for both architectures: x86_64 and arm64-v8a.

Changes

  • Added Android to the test matrix strategy using include syntax

  • Configured an Android emulator using reactivecircus/android-emulator-runner@v2

  • Added support for both architectures:

    • x86_64 — for fast emulator-based testing
    • arm64-v8a — for testing on the native architecture of Android devices
  • Emulator parameters:

    • API level: 30
    • Architecture: dynamically selected from the matrix (x86_64 or arm64-v8a)
    • Profile: Nexus 6
    • RAM: 2048M
    • Disk: 4096M
  • Added steps to install Flutter and run tests on Android

  • Configured PATH propagation from previous steps to ensure Flutter works correctly inside the emulator

Technical details

  • Uses a matrix strategy with include to define separate Android configurations for each architecture
  • Flutter is installed within the emulator script if it’s not available in PATH
  • All existing tests should run on Android without changes

Testing

Tests will be automatically executed on an Android emulator for both architectures on every push and pull request.

Related tasks

Adds support for Android platform testing according to the project requirements. The project supports both architectures (arm64-v8a and x86_64) as stated in the documentation.

The android-emulator-runner runs scripts in an isolated environment where Flutter may not be available. Add Flutter installation check and setup if needed.
- Save PATH to environment variables before emulator runner
- Pass PATH through env to android-emulator-runner
- Remove flutter doctor that could fail with exit code 2
- Add set -e for immediate error handling
- Add Flutter version verification before tests
- Remove conditional check for Flutter installation
- Ensure Flutter is always cloned and added to PATH
- Simplify setup process for running tests
Add arm64-v8a to Android test matrix alongside x86_64 to test both supported architectures. Use matrix include syntax to define separate Android configurations for each architecture.
arm64-v8a emulator requires more time to boot than x86_64. Increase timeout to 600 seconds for arm64-v8a while keeping default 300 seconds for x86_64.
Increase emulator-boot-timeout to 900 seconds (15 minutes) and RAM to 3072M for arm64-v8a architecture, as it requires more resources and time to boot than x86_64.
arm64-v8a emulation on x86_64 host in GitHub Actions is too slow and unreliable, causing timeout issues. Keep only x86_64 emulator tests which are stable and sufficient to verify Android platform compatibility.

The project still supports arm64-v8a architecture for end users, but CI testing on x86_64 emulator is sufficient to validate Android platform functionality.
@vik-borisov
vik-borisov merged commit 45f21a7 into main Jan 1, 2026
5 checks passed
@vik-borisov
vik-borisov deleted the feat/add-android-tests branch January 1, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant