Skip to content

ci: run instrumentation tests on Ubuntu with KVM and skip redundant runs - #1053

Open
kikoso wants to merge 1 commit into
mainfrom
ci/instrumentation-ubuntu-kvm
Open

kikoso wants to merge 1 commit into
mainfrom
ci/instrumentation-ubuntu-kvm

Conversation

@kikoso

@kikoso kikoso commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator

The instrumentation tests are the only workflow in this repo on a billed runner (macOS-latest-large), and they now account for most of the org's Actions spend. Jobs are currently not even starting because the spending limit was reached.

In the last 30 days the workflow ran 136 macOS larger runner jobs, about 2,600 minutes (around 19 minutes each). Part of that was spent on runs that could not catch anything: release-please PRs (225 minutes), Dependabot PRs, docs-only PRs and superseded pushes that kept running.

This PR:

  • Runs the emulator on ubuntu-latest with KVM, the same setup demo-smoke-test.yml already uses successfully (10 to 13 minutes per run). Standard runners are free for public repositories. The emulator stays on API 29 google_apis, moving from x86 to x86_64, which is the image Ubuntu runs with acceleration.
  • Cancels superseded runs: a new push to a PR cancels the run for the previous commit.
  • Skips runs that cannot affect the emulator tests: docs and Markdown only changes, issue templates, CODEOWNERS, dependabot.yml, draft PRs (the run starts on ready_for_review) and release-please PRs. Workflow changes still run, so a bumped action is exercised before it merges.

run-instrumentation-test is not a required check, so skipped runs never block a merge. The post-merge Record coverage history workflow already handles a missing, cancelled or skipped emulator run by recording unit coverage only; the only change there is a comment that mentioned the macOS runner. Job, workflow file and artifact names are unchanged, so it keeps finding the run.

Validation: since this PR is a draft, its own instrumentation run is skipped by design. I triggered the workflow manually on this branch (workflow_dispatch uses the branch's file) to check the suite on the Ubuntu emulator, and will post the result here before marking it ready.

@github-actions

Copy link
Copy Markdown

Coverage (unit tests)

Compared against 65a4d89 on main (#1051).

Module Line % Change Branch % Change
maps-compose 15.28% no change 3.76% no change
maps-compose-utils 6.09% no change 4.47% no change
maps-compose-widgets 0.00% no change 0.00% no change
TOTAL 12.41% no change 3.79% no change

Line and branch coverage from unit test reports. History is recorded on the coverage-history branch after each merge to main.

@googlemaps-bot

googlemaps-bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Coverage (instrumentation tests)

Overall Project 43.63% 🍏

There is no coverage information present for the Files changed

@kikoso

kikoso commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator Author

Validation run on this branch (workflow_dispatch, ubuntu-latest with KVM): https://github.com/googlemaps/android-maps-compose/actions/runs/40095704517

  • 49 instrumentation tests, 0 failures, 0 skipped, the same as the last macOS run on the KMP branch (run 39967835038).
  • The job took 9 minutes, compared to about 19 on average on macOS-latest-large over the last 30 days.
  • Coverage staging, the artifact upload and the Jacoco report all ran as before.

The run on this PR itself shows as skipped because the PR is a draft, which is the new draft rule working.

@kikoso
kikoso marked this pull request as ready for review October 24, 2026 13:19
@kikoso
kikoso requested a review from a team as a code owner October 24, 2026 13:19

This branch has not been deployed

No deployments
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.

3 participants