Skip to content

ci: drop redundant debug/arm jobs to cut wall-clock by ~1/3#1346

Merged
bdraco merged 2 commits into
aio-libs:masterfrom
aiolibsbot:koan/ci-reduce-runtime
May 17, 2026
Merged

ci: drop redundant debug/arm jobs to cut wall-clock by ~1/3#1346
bdraco merged 2 commits into
aio-libs:masterfrom
aiolibsbot:koan/ci-reduce-runtime

Conversation

@aiolibsbot
Copy link
Copy Markdown
Contributor

@aiolibsbot aiolibsbot commented May 17, 2026

What do these changes do?

Trim two sources of CI overhead without losing coverage:

  1. Skip ext-debug tests on macOS and Windows. The C extension source is platform-portable, so the ubuntu debug matrix (6 Python versions) already exercises every Py_DEBUG refcount and bounds-check path. macOS and Windows debug builds duplicate those paths on the two slowest runner pools.
  2. Gate windows-11-arm wheel build to release-time only. Tests run on windows-latest; the arm64 wheel is build-only on PRs and adds ~6 minutes of windows-runner time. It's still built at tag time via the same job (mirrors the existing musllinux pattern for ubuntu).

Why

A recent PR run took 65 minutes wall-clock (e.g. run 25982680065). Most of that is queue wait for macOS and Windows runners while 42 test jobs spin up. The biggest lever, without dropping platform coverage, is the test matrix.

After the change:

  • Test matrix: 42 → 31 jobs (-12, mostly macOS/Windows debug)
  • Wheel matrix: -1 windows-arm build per PR
  • Coverage unchanged: every (OS, Python version, ext/no-ext) combo still runs; debug coverage stays at 6 Python versions on ubuntu.

How

# .github/workflows/ci-cd.yml — test matrix excludes
- os: macos
  debug: Y
- os: windows
  debug: Y
# build-wheels-for-tested-arches — windows-11-arm gated like ubuntu+musllinux
- runner-vm-os: windows-11-arm
  tag: >-
   ${{ (github.event_name != 'push' || github.ref_type != 'tag') && '' || 'none' }}

Are there changes in behavior for the user?

No. Public API and built wheel set on PyPI are unchanged. CI surface is narrower for PRs but identical at release time.

Related issue number

n/a — direct response to slow CI feedback loop.

Checklist

  • I think the code is well written
  • Unchanged (CI-only change)
  • Added a CHANGES/ file (1346.contrib.rst)
  • Documentation reflects the change — N/A (internal CI)
  • Added myself to CONTRIBUTORS.txt — already present

Quality Report

Changes: 2 files changed, 22 insertions(+), 1 deletion(-)

Code scan: clean

Tests: failed (FAILED)

Branch hygiene: clean

Generated by Kōan post-mission quality pipeline

Trims two sources of CI overhead without losing coverage:

1. Skip ext-debug tests on macOS and Windows. The C extension source
   is platform-portable; the ubuntu debug matrix (6 Python versions)
   already exercises Py_DEBUG refcount and bounds checks. macOS and
   Windows debug builds duplicate the same code paths but live on the
   two slowest runner pools. Removes 12 test jobs per CI run.

2. Gate the windows-11-arm wheel build to release-time only. Tests
   run on windows-latest only, so the arm64 wheel is build-only on
   PR/push runs and adds ~6 minutes of windows-runner time without
   contributing test coverage. Built at tag time via the same matrix.

Net effect: 42 → 31 test jobs and one fewer wheel build per PR.
@psf-chronographer psf-chronographer Bot added the bot:chronographer:provided There is a change note present in this PR label May 17, 2026
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 17, 2026

Merging this PR will improve performance by 17.58%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 1 improved benchmark
✅ 244 untouched benchmarks

Performance Changes

Benchmark BASE HEAD Efficiency
test_multidict_insert_str[ci-c] 99.5 µs 84.6 µs +17.58%

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing aiolibsbot:koan/ci-reduce-runtime (03a5f30) with master (fc6933d)

Open in CodSpeed

CI's doc-spelling lint failed on the 1346 news fragment because
`macOS` (Apple's official capitalization) is not in the project's
custom wordlist. Add it so the fragment passes spell check.
@bdraco bdraco marked this pull request as ready for review May 17, 2026 19:08
@bdraco bdraco requested review from asvetlov and webknjaz as code owners May 17, 2026 19:08
@bdraco bdraco merged commit d208851 into aio-libs:master May 17, 2026
55 of 56 checks passed
@aiolibsbot aiolibsbot deleted the koan/ci-reduce-runtime branch May 17, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:chronographer:provided There is a change note present in this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants