Skip to content

Canonical CI: grouped-tests.yml + root test/test_groups.toml#106

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

Canonical CI: grouped-tests.yml + root test/test_groups.toml#106
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root test workflow (ci.yml, name: CI, job Tests) from a hand-maintained group × version × os matrix that called tests.yml@v1 into a thin caller of the canonical grouped-tests.yml@v1. The test matrix now lives once in a root test/test_groups.toml and is computed by compute_affected_sublibraries.jl --root-matrix.

The new jobs.tests:

jobs:
  tests:
    uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
    secrets: "inherit"

No with: inputs are needed: the old job set no non-defaults (no check-bounds, coverage on, default src,ext coverage dirs, no apt packages), and runtests.jl reads the default GROUP env var.

on: triggers and concurrency: are preserved verbatim, and name: CI is kept so the branch-protection status check name is unchanged. No other workflow files were touched.

test/test_groups.toml

[All]
versions = ["1", "lts", "pre"]
os = ["ubuntu-latest", "macOS-latest", "windows-latest"]

[nopre]
versions = ["1", "lts"]
os = ["ubuntu-latest", "macOS-latest", "windows-latest"]

This reproduces the old matrix exactly: All on {1, lts, pre} and nopre on {1, lts} (the old nopre × pre exclude), each across the three OSes. runtests.jl already dispatches on GROUP via TestItemRunner tags (All = everything except :nopre-tagged items, nopre = only :nopre-tagged items), so no runtests.jl change is needed.

Matrix match

Verified with julia scripts/compute_affected_sublibraries.jl <repo> --root-matrix against the v1 SciML/.github script: the emitted (group, version, os) set is 15/15 exact vs the old workflow's expanded matrix. TOML and YAML both parse cleanly.

QA

Category A — the repo already has Aqua + ExplicitImports QA test items (test/qa.jl, tagged :qa), which run inside the existing All/nopre groups. No QA changes, no source bugs surfaced; static matrix-verify only.

Ignore until reviewed by @ChrisRackauckas.

Convert the root CI workflow (ci.yml, name: CI) from a hand-maintained
group x version x os matrix calling tests.yml@v1 into a thin caller of the
canonical grouped-tests.yml@v1. The matrix now lives in test/test_groups.toml
at the repo root and is computed by compute_affected_sublibraries.jl
--root-matrix.

runtests.jl already dispatches on the GROUP env var via TestItemRunner tags
("All" = everything except :nopre-tagged items; "nopre" = only :nopre-tagged),
so no runtests.jl change is needed (default group-env-name GROUP).

The old job set no non-default tests.yml inputs (no check-bounds, coverage on,
default src,ext, no apt packages), so the thin caller needs no `with:` block.
on: triggers and concurrency: are preserved verbatim; name: CI is kept so the
branch-protection status check is preserved.

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 15:13
@ChrisRackauckas ChrisRackauckas merged commit 7628074 into SciML:master Jun 8, 2026
7 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