4949 if : >
5050 (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
5151 && !startsWith(github.event.head_commit.message || '', '[changelog] ')
52- runs-on : ubuntu-slim
52+ runs-on : ubuntu-26.04
5353 permissions :
5454 issues : write
5555 steps :
7474 # context and manages the caller's own issue. See
7575 # repomatic/runner_images.py for why the announcement feed is the source.
7676 if : github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
77- runs-on : ubuntu-slim
77+ runs-on : ubuntu-26.04
7878 permissions :
7979 issues : write
8080 steps :
@@ -104,7 +104,7 @@ jobs:
104104 !contains(fromJSON('["major-version-increment","minor-version-increment","prepare-release"]'),
105105 github.head_ref)
106106 && !startsWith(github.event.head_commit.message || '', '[changelog] ')
107- runs-on : ubuntu-slim
107+ runs-on : ubuntu-26.04
108108 outputs :
109109 metadata : ${{ steps.metadata.outputs.metadata }}
110110 steps :
@@ -130,7 +130,7 @@ jobs:
130130 - metadata
131131 # Ruff can format code in both Python and Markdown files.
132132 if : fromJSON(needs.metadata.outputs.metadata).python_files || fromJSON(needs.metadata.outputs.metadata).doc_files
133- runs-on : ubuntu-slim
133+ runs-on : ubuntu-26.04
134134 permissions :
135135 contents : write
136136 pull-requests : write
@@ -184,7 +184,7 @@ jobs:
184184 needs :
185185 - metadata
186186 if : fromJSON(needs.metadata.outputs.metadata).is_python_project
187- runs-on : ubuntu-slim
187+ runs-on : ubuntu-26.04
188188 permissions :
189189 contents : write
190190 pull-requests : write
@@ -227,13 +227,14 @@ jobs:
227227 needs :
228228 - metadata
229229 if : fromJSON(needs.metadata.outputs.metadata).markdown_files
230- # Back on the lean default: shfmt was the only reason this job needed a full
231- # image, and `repomatic run mdformat` now provisions it through mdformat's
232- # `path_tools` instead of apt. ARM would run the per-file mdformat pass
233- # ~1.26x faster, but mdformat-config pulls taplo, which ships no
234- # linux-aarch64 wheel and has a broken 0.9.3 sdist; stay on x86 until taplo
235- # publishes an aarch64 wheel. See docs/test-matrix.md.
236- runs-on : ubuntu-slim
230+ # The heaviest light job, and the only one where the image's CPU shows up at
231+ # all: it spawns one mdformat per file. ARM would run that pass ~1.26x
232+ # faster, but mdformat-config pulls taplo, which ships no linux-aarch64
233+ # wheel and has a broken 0.9.3 sdist, so this job stays on x86 whatever the
234+ # rest of the fleet does. `shfmt` no longer pins it to a full image either
235+ # way: `repomatic run mdformat` provisions that through mdformat's
236+ # `path_tools` instead of apt. See docs/test-matrix.md.
237+ runs-on : ubuntu-26.04
237238 permissions :
238239 contents : write
239240 pull-requests : write
@@ -287,7 +288,7 @@ jobs:
287288 needs :
288289 - metadata
289290 if : fromJSON(needs.metadata.outputs.metadata).shfmt_files
290- runs-on : ubuntu-slim
291+ runs-on : ubuntu-26.04
291292 permissions :
292293 contents : write
293294 pull-requests : write
@@ -332,7 +333,7 @@ jobs:
332333 needs :
333334 - metadata
334335 if : fromJSON(needs.metadata.outputs.metadata).json_files
335- runs-on : ubuntu-slim
336+ runs-on : ubuntu-26.04
336337 permissions :
337338 contents : write
338339 pull-requests : write
@@ -384,7 +385,7 @@ jobs:
384385 # gate the metadata job carries.
385386 if : >
386387 !startsWith(github.event.head_commit.message || '', '[changelog] ')
387- runs-on : ubuntu-slim
388+ runs-on : ubuntu-26.04
388389 permissions :
389390 contents : write
390391 pull-requests : write
@@ -426,7 +427,7 @@ jobs:
426427 needs :
427428 - metadata
428429 if : fromJSON(needs.metadata.outputs.metadata).is_python_project
429- runs-on : ubuntu-slim
430+ runs-on : ubuntu-26.04
430431 permissions :
431432 contents : write
432433 pull-requests : write
@@ -473,7 +474,7 @@ jobs:
473474 # gate the metadata job carries.
474475 if : >
475476 !startsWith(github.event.head_commit.message || '', '[changelog] ')
476- runs-on : ubuntu-slim
477+ runs-on : ubuntu-26.04
477478 permissions :
478479 contents : write
479480 pull-requests : write
@@ -509,7 +510,7 @@ jobs:
509510 needs :
510511 - metadata
511512 if : fromJSON(needs.metadata.outputs.metadata).image_files
512- runs-on : ubuntu-slim
513+ runs-on : ubuntu-26.04
513514 permissions :
514515 contents : write
515516 pull-requests : write
@@ -565,7 +566,7 @@ jobs:
565566 needs :
566567 - metadata
567568 if : fromJSON(needs.metadata.outputs.metadata).gitignore_exists
568- runs-on : ubuntu-slim
569+ runs-on : ubuntu-26.04
569570 permissions :
570571 contents : write
571572 pull-requests : write
@@ -597,10 +598,10 @@ jobs:
597598 name : 🔄 Sync bumpversion config
598599 needs :
599600 - metadata
600- runs-on : ubuntu-slim
601601 # is_python_package, not is_python_project: a uv virtual project
602602 # ([tool.uv] package = false) has a [project] table but nothing to version.
603603 if : fromJSON(needs.metadata.outputs.metadata).is_python_package
604+ runs-on : ubuntu-26.04
604605 permissions :
605606 contents : write
606607 pull-requests : write
@@ -633,7 +634,7 @@ jobs:
633634 needs :
634635 - metadata
635636 if : fromJSON(needs.metadata.outputs.metadata).mailmap_exists
636- runs-on : ubuntu-slim
637+ runs-on : ubuntu-26.04
637638 permissions :
638639 contents : write
639640 pull-requests : write
@@ -675,7 +676,7 @@ jobs:
675676 # each needs its own branch and PR body.
676677 needs :
677678 - metadata
678- runs-on : ubuntu-slim
679+ runs-on : ubuntu-26.04
679680 permissions :
680681 contents : write
681682 pull-requests : write
@@ -846,7 +847,7 @@ jobs:
846847 if : >
847848 fromJSON(needs.metadata.outputs.metadata).is_python_project
848849 && fromJSON(needs.metadata.outputs.metadata).active_autodoc
849- runs-on : ubuntu-slim
850+ runs-on : ubuntu-26.04
850851 permissions :
851852 contents : write
852853 pull-requests : write
0 commit comments