Skip to content

Run the root checks as parallel steps in one job - #678

Merged
nikobockerman merged 1 commit into
mainfrom
checks-mise-parallel-steps
Aug 29, 2026
Merged

Run the root checks as parallel steps in one job#678
nikobockerman merged 1 commit into
mainfrom
checks-mise-parallel-steps

Conversation

@nikobockerman

Copy link
Copy Markdown
Owner

Each root check had a job of its own through the generic mise-task.yaml wrapper, which was the only way to run them concurrently. Measured over six successful runs on main, those eight jobs spent about 103s restoring the same tools to run 5s of checks: a job is a fresh VM, so the same image boot, checkout and cache restore was paid eight times over.

GitHub Actions gained parallel steps on 2026-06-25, which run concurrently inside one job while still reporting per-step status. Move the eight checks into a single job, so the setup is paid once. A failing step is still attributed individually, and its siblings still run, so nothing is lost by no longer having a job per check.

ruff keeps its cache in the working directory, so check:ruff and check:ruff:format would now share one .ruff_cache. Point them at separate cache directories under the runner temp instead.

Each root check had a job of its own through the generic mise-task.yaml
wrapper, which was the only way to run them concurrently. Measured over
six successful runs on main, those eight jobs spent about 103s restoring
the same tools to run 5s of checks: a job is a fresh VM, so the same
image boot, checkout and cache restore was paid eight times over.

GitHub Actions gained parallel steps on 2026-06-25, which run
concurrently inside one job while still reporting per-step status. Move
the eight checks into a single job, so the setup is paid once. A failing
step is still attributed individually, and its siblings still run, so
nothing is lost by no longer having a job per check.

ruff keeps its cache in the working directory, so check:ruff and
check:ruff:format would now share one .ruff_cache. Point them at
separate cache directories under the runner temp instead.
Copilot AI lite review requested due to automatic review settings August 29, 2026 19:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

It changes CI execution semantics and relies on a relatively new GitHub Actions feature (“parallel” steps) that should be validated in real runs to ensure expected check reporting and stability.

Pull request overview

This PR optimizes CI runtime by consolidating the repository-root “mise tool” checks into a single reusable workflow job that runs those checks concurrently via GitHub Actions’ parallel steps, reducing repeated VM setup/checkout/cache restore overhead.

Changes:

  • Replaced eight separate root-check jobs in ci.yaml with a single checks-mise job that calls a reusable workflow.
  • Added .github/workflows/checks-mise.yaml to run the root checks as parallel steps inside one job.
  • Split Ruff cache directories between check:ruff and check:ruff:format to avoid sharing a .ruff_cache when running concurrently.
File summaries
File Description
.github/workflows/ci.yaml Collapses multiple root-check jobs into a single reusable-workflow job (checks-mise) and updates the final “alls-green” aggregator dependencies accordingly.
.github/workflows/checks-mise.yaml New reusable workflow that restores mise tools once, then runs the root checks concurrently using parallel, with separate Ruff cache dirs.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@nikobockerman
nikobockerman merged commit 0a04698 into main Aug 29, 2026
47 checks passed
@nikobockerman
nikobockerman deleted the checks-mise-parallel-steps branch August 29, 2026 20:30
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