Skip to content

ci: run the floor, coverage and newest Python legs on pull requests - #63

Merged
gabrielspadon merged 1 commit into
mainfrom
ci/lean-pr-python-matrix
Oct 25, 2026
Merged

gabrielspadon merged 1 commit into
mainfrom
ci/lean-pr-python-matrix

Conversation

@gabrielspadon

Copy link
Copy Markdown
Collaborator

What changes

Tests runs the 3.10 floor, the 3.12 coverage leg and 3.14 on pull_request. The push to main still runs 3.10 through 3.14. Required CI, its needs list and every other job are unchanged. tests/test_ci_artifact_contract.py now asserts the split: the push set equals the supported versions, and the PR set holds the floor, the coverage version and the newest version.

Measured (2026-10-11 to 2026-10-25, job durations rounded up per job)

  • CiteForge: 25 runs, 153 Linux minutes, 0 macOS and 0 Windows. It is a public repository, so the billing API shows $0.00 net for these minutes.
  • Tests: 11 runs at about 13 billed minutes each (lint 1, gate 1, 3.12 with coverage 3, the other four legs 2 each). 6 runs were pull_request and 5 were push.
  • None of the 10 failed Tests runs since 2026-06 failed on 3.11 or 3.13 alone. Each one was a lint failure or failed on every leg.

Projected

  • A PR run goes from 13 to 9 billed minutes, a 31% cut. A PR plus its merge push goes from 26 to 22.
  • At the same cadence the window goes from 153 to about 129 minutes.

Not changed, and why

  • The push run on main stays. The repository has no ruleset that requires branches to be up to date, so the squash commit can differ from the tree the PR run tested.
  • Monthly Pipeline Refresh stays as it is. It is public and used about 43 minutes on 2026-10-01.

Context: what actually exhausted the MAPS-Lab budget

The MAPS-Lab Actions budget is $50 with prevent_further_usage: true. October hit $50.03 net on 2026-10-11. Most of that came from the private MAPS-Lab/OceanStack daily scheduled full matrix, at about $4.89 a run. CiteForge is not a cause. It does feed the private mapslab-website deploy, though, and that deploy is blocked until the budget clears. That fix is in a separate OceanStack PR.

Verification

.venv/bin/pytest -m 'not live' -q on rtx, Python 3.12, against 4a6f886 plus this diff: 2083 passed, 2 skipped (the two cutover contracts that are skipped by design), 7 deselected (live). ruff check citeforge/ tests/ main.py is clean. actionlint and zizmor --offline report nothing on tests.yml.

A pull request now runs Python 3.10, 3.12 and 3.14. The push to main
still runs all five supported versions, so main keeps the full verdict.
The artifact contract test now asserts that split instead of one list.
@gabrielspadon
gabrielspadon merged commit 190f16b into main Oct 25, 2026
5 checks passed
@gabrielspadon
gabrielspadon deleted the ci/lean-pr-python-matrix branch October 25, 2026 13:03
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