Skip to content

ci: pin runner images so the matrix can actually run - #1206

Merged
codeskyblue merged 1 commit into
masterfrom
ci/fix-matrix
Nov 14, 2026
Merged

codeskyblue merged 1 commit into
masterfrom
ci/fix-matrix

Conversation

@codeskyblue

Copy link
Copy Markdown
Member

Problem

The workflow has been quietly broken since GitHub moved its hosted runner images. This is why #1205 looked half-red/half-stuck even though the change was fine:

  • macos-12 is retired → the macOS job queues forever, it never picks up a runner.
  • ubuntu-latest now resolves to Ubuntu 26.04, where actions/setup-python has no Python 3.8 build → The version '3.8' with architecture 'x64' was not found for Ubuntu 26.04 before any test runs.
  • The macOS entry is added via include without python-version, so it runs with an empty version — that is why the job is called macOS /.
  • Nothing caught the rot: the last Python application run on master was on Nov 2, so the next PR was the first thing to trip over it.

Fix

  • macos-12 → macos-15 (with Python 3.11; 3.8 has no macOS arm64 build).
  • Pin Ubuntu to ubuntu-24.04 instead of ubuntu-latest, which still ships Python 3.8, so no supported version is dropped from the matrix.
  • Rewrite the matrix as explicit include entries that each carry python-version, so ${{ matrix.python-version }} is never empty.
  • Upgrade actions/checkout@v7, actions/setup-python@v7, codecov/codecov-action@v7; drop codecov/test-results-action@v1 — it is deprecated and reported Found 0 test_results files on every run.
  • Add timeout-minutes: 20, PR concurrency cancellation, and a nightly cron on master. A future runner or Python build removal then fails loudly overnight instead of blocking the next PR.

Verification

This PR's own checks exercise the new matrix: Ubuntu / 3.8, Ubuntu / 3.11, Windows / 3.8, Windows / 3.11, macOS / 3.11.

Overlaps with #1204 (runner + action upgrades). Either can land; this one also keeps Python 3.8 coverage and fixes the empty matrix entry.

- macos-12 is retired, so its job queued forever; use macos-15
- ubuntu-latest is Ubuntu 26.04 now, where setup-python has no 3.8 build;
  pin Ubuntu to 24.04, which still ships one
- give every matrix entry an explicit python-version (the macOS job had none
  and ran as "macOS /")
- upgrade checkout/setup-python/codecov actions; drop the deprecated
  codecov/test-results-action that never found any JUnit report
- add timeout, concurrency and a nightly cron so future runner or Python
  build removals surface on master instead of blocking the next PR
Copilot AI balanced review requested due to automatic review settings November 14, 2026 05:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@codecov

codecov Bot commented Nov 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 45.26%. Comparing base (eb1542f) to head (9de8d18).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1206   +/-   ##
=======================================
  Coverage   45.26%   45.26%           
=======================================
  Files          29       29           
  Lines        4158     4158           
  Branches      812      812           
=======================================
  Hits         1882     1882           
  Misses       2164     2164           
  Partials      112      112           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@codeskyblue
codeskyblue merged commit 876219c into master Nov 14, 2026
7 checks passed
@codeskyblue
codeskyblue deleted the ci/fix-matrix branch November 14, 2026 05:34
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.

2 participants