Skip to content

ci(device_info_plus): migrate android workflows to ubuntu-24.04 and kvm#3847

Open
mdmahendri wants to merge 1 commit into
fluttercommunity:mainfrom
mdmahendri:ci/device-info-ubuntu-migration
Open

ci(device_info_plus): migrate android workflows to ubuntu-24.04 and kvm#3847
mdmahendri wants to merge 1 commit into
fluttercommunity:mainfrom
mdmahendri:ci/device-info-ubuntu-migration

Conversation

@mdmahendri
Copy link
Copy Markdown

Description

This PR migrates the Android workflows for device_info_plus from macos-15-intel to ubuntu-24.04 environment.

The Problem

Currently, the repo utilize macOS runner which make android build and android integration tests running on API level 36 consistently time out and fail across the repository's packages. This PR serves as one part of a plan to migrate all nine packages to ubuntu-24.04 to resolve this issue.

Consideration

Benchmark & Validation Data on android_example_build

The table below presents the total runtime of the workflow job for build. Control baseline were retrieved from the repo historical runtime logs, compared against two validation runs on the Linux environment on my other branch:

No Package Name Control (macos-15-intel) Test 1 (ubuntu-24.04) Test 2 (ubuntu-24.04)
1 android_alarm_manager_plus 10m 2s 5m 31s 5m 23s
2 android_intent_plus 10m 57s 4m 30s 4m 19s
3 battery_plus 13m 1s 4m 46s 4m 33s
4 connectivity_plus 17m 21s 4m 24s 4m 24s
5 device_info_plus 12m 1s 4m 53s 4m 40s
6 network_info_plus 12m 2s 4m 48s 4m 55s
7 package_info_plus 8m 14s 4m 41s 4m 41s
8 sensors_plus 6m 6s 4m 25s 4m 41s
9 share_plus 12m 6s 5m 21s 5m 22s

Benchmark on integration test targeting API Level 36

Because the current macOS CI baseline consistently times out (30m+) or fails to boot the API 36 image entirely, no repo historical runtime logs are retrieved. On ubuntu-24.04 with KVM enabled, API 36 consistently runs to completion. This represents a ~70% reduction in integration test times where it previously fail.

No Package Name Job Link (Test 1 Verification) Test 1 Duration Test 2 Duration
1 android_alarm_manager_plus Job Log 8m 30s 8m 18s
2 android_intent_plus Job Log 3m 4s 3m 15s
3 battery_plus Job Log 7m 28s 7m 13s
4 connectivity_plus Job Log 7m 24s 7m 24s
5 device_info_plus Job Log 7m 6s 7m 27s
6 network_info_plus Job Log 7m 43s 7m 23s
7 package_info_plus Job Log 7m 23s 7m 33s
8 sensors_plus Job Log 7m 25s 7m 8s
9 share_plus Job Log 8m 0s 8m 11s

Related Issues

No tracking issue is open, but ongoing pull requests show persistent fails and timeouts during the AVD stage. This creates confusion for contributors diagnosing whether a test failure stems from their code changes or the infrastructure itself. Fixing this workflow provide better tool for all future contributions.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the plugin version in pubspec.yaml files.
  • All existing and new tests are passing. (CI/Workflow infrastructure update only).
  • The analyzer (flutter analyze) does not report any problems on my PR. (CI/Workflow infrastructure update only).

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • No, this is not a breaking change.

@mdmahendri
Copy link
Copy Markdown
Author

android_example_build and android_integration_test (36) ran successfully in 4m 52s and 7m 15s respectively. These times are well within the range of the reported results above.

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