Skip to content

Simplify root CI to grouped-tests.yml (matrix from test/test_groups.toml)#1222

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci
Jun 8, 2026
Merged

Simplify root CI to grouped-tests.yml (matrix from test/test_groups.toml)#1222
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

What

Replaces the hand-maintained group × version matrix in the root .github/workflows/CI.yml test job with the thin grouped-tests.yml@v1 caller. The matrix now lives in the root test/test_groups.toml and is computed by compute_affected_sublibraries.jl --root-matrix.

jobs:
  tests:
    uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
    with:
      coverage-directories: "src,lib/OptimizationBase/src,..."
    secrets: "inherit"
  • name: CI and the filename are unchanged, so the branch-protection status-check name is preserved.
  • on: triggers and concurrency: are kept verbatim.
  • coverage-directories is preserved as the only non-default with: input.
  • Group dispatch stays on the default GROUP env var, which the root test/runtests.jl reads (get(ENV, "GROUP", "Core")). coverage (true) and check-bounds (yes) keep their defaults, matching the old root tests.yml@v1 call.
  • The SublibraryCI.yml workflow (which calls sublibrary-project-tests.yml@v1) and the IntegrationTest/Downstream.yml workflow are untouched.

test/test_groups.toml

Trimmed to exactly the groups the root CI workflow actually ran:

[Core]
versions = ["lts", "1", "pre"]

[QA]
versions = ["lts", "1"]

The GPU group that the monorepo uniformization (#1220) added to this file speculatively is dropped: the root CI.yml never dispatched a GPU job (there was no self-hosted GPU runner cell), so keeping it would invent a matrix entry that did not run before and would attempt to schedule on a self-hosted GPU runner.

Verified matrix match (5/5 exact)

julia compute_affected_sublibraries.jl <repo> --root-matrix yields exactly the old workflow's set:

group versions
Core lts, 1, pre
QA lts, 1

{(Core,lts),(Core,1),(Core,pre),(QA,lts),(QA,1)} — no missing, no extra. TOML and YAML both parse cleanly. Package test suite not run locally (heavy; CI validates).

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

…oml)

Replace the hand-maintained group x version matrix in the root CI.yml
test job with the thin grouped-tests.yml@v1 caller, which builds the
matrix from test/test_groups.toml via
compute_affected_sublibraries.jl --root-matrix.

The root test_groups.toml is trimmed to the groups the root CI workflow
actually ran (Core on lts/1/pre, QA on lts/1). The GPU group that the
monorepo uniformization added speculatively is dropped because the root
CI workflow never dispatched it (no self-hosted GPU job existed), so
keeping it would invent a matrix cell that did not run before.

coverage-directories is preserved verbatim as the only non-default
with: input; group dispatch stays on the default GROUP env var, which
the root runtests.jl reads, and coverage/check-bounds keep their
defaults to match the old root tests.yml call. The workflow filename and
name: CI are unchanged so the branch-protection status check name is
preserved.

Verified the computed root matrix equals the old workflow matrix exactly
(5/5): {(Core,lts),(Core,1),(Core,pre),(QA,lts),(QA,1)}.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 8, 2026 11:48
@ChrisRackauckas ChrisRackauckas merged commit ae548dc into SciML:master Jun 8, 2026
9 of 12 checks passed
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