Skip to content

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

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#85
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:grouped-tests-ci

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root Tests.yml test workflow to the canonical thin caller using SciML/.github/.github/workflows/grouped-tests.yml@v1, with the group × version matrix declared once in a new root test/test_groups.toml.

Changes

  • .github/workflows/Tests.yml — the matrix test job is replaced by the thin caller:
    jobs:
      tests:
        uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
        secrets: "inherit"
    name: "Tests", the on: triggers, and concurrency: are preserved verbatim so branch-protection status checks are unaffected. No other workflow files were touched (Downgrade, Downstream, Documentation, FormatCheck, SpellCheck, TagBot, RunicSuggestions, DependabotAutoMerge, DocPreviewCleanup all left as-is).
  • test/test_groups.toml (new):
    [Core]
    versions = ["lts", "1", "pre"]
    
    [QA]
    versions = ["lts", "1"]

Why no with: inputs

runtests.jl already dispatches on the standard GROUP env var (Core/QA), so the default group-env-name (GROUP) applies. The old caller invoked tests.yml@v1 with all defaults (check-bounds=yes, coverage=true, coverage-directories=src,ext, apt-packages=""), all of which match grouped-tests.yml's defaults — so the thin caller needs no with: block.

Matrix match: 5/5 exact

Old workflow matrix was version: [1, lts, pre] × group: [Core, QA] with exclude: pre × QA → 5 cells. Running compute_affected_sublibraries.jl <root> --root-matrix against the new test/test_groups.toml emits exactly:

  • (Core, lts), (Core, 1), (Core, pre)
  • (QA, lts), (QA, 1)

The QA-off-pre constraint (JET 0.11.x cannot resolve on Julia 1.13 prereleases) is preserved by declaring QA's versions = ["lts", "1"] rather than via a matrix exclude.

Verification

  • Root-matrix script run with Julia 1.11: reproduces old matrix 5/5 exact.
  • test/test_groups.toml parses (Julia TOML); Tests.yml parses (YAML).

QA findings

None. This is a CI-plumbing change only; runtests.jl already had Core/QA GROUP dispatch (QA = JET static analysis), so no source or test changes were made.

Ignore until reviewed by @ChrisRackauckas.

Convert the root Tests.yml test workflow to the canonical thin caller
(SciML/.github/.github/workflows/grouped-tests.yml@v1) and declare the
group x version matrix once in test/test_groups.toml.

- Core on [lts, 1, pre]
- QA on [lts, 1]  (kept off `pre` -- JET 0.11.x cannot resolve on 1.13
  prereleases), reproducing the old workflow's `exclude: pre x QA`.

runtests.jl already dispatches on GROUP (Core/QA), so no runtests.jl
change is needed and the default group-env-name (GROUP) applies. The old
caller used tests.yml@v1 with all defaults (check-bounds=yes,
coverage=true, coverage-directories=src,ext, apt-packages=""), so the new
thin caller needs no `with:` inputs.

Root-matrix script reproduces the old matrix exactly: 5/5 cells.

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:14
@ChrisRackauckas ChrisRackauckas merged commit f49b6d4 into SciML:master Jun 8, 2026
5 of 23 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