Skip to content

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Converts the root Tests.yml test workflow to the canonical thin caller of SciML/.github grouped-tests.yml@v1, with the version/OS matrix declared once in a ROOT test/test_groups.toml.

Change

  • .github/workflows/Tests.yml: the hand-maintained version × os matrix job is replaced by the thin caller:
    jobs:
      tests:
        uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
        secrets: "inherit"
    Filename and top-level name: "Tests" are preserved so branch-protection status checks stay valid. on: triggers (pull_request/push on master with paths-ignore: docs/**, plus the weekly schedule) and the concurrency: block are kept verbatim. No with: inputs are needed: the package reads the standard GROUP env var, check-bounds default (yes), coverage default (true), and coverage-directories default (src,ext, matching src/ + ext/); there are no apt packages.
  • test/test_groups.toml (new): a single capitalized Core group declaring the matrix.
[Core]
versions = ["lts", "1", "pre"]
os = ["ubuntu-latest", "macos-latest", "windows-latest"]

Matrix match: 9/9 exact

The old job ran the full suite (GROUP defaulting to "All") on version ∈ {1, lts, pre} × os ∈ {ubuntu-latest, macos-latest, windows-latest} = 9 cells.

scripts/compute_affected_sublibraries.jl <root> --root-matrix against the new TOML emits exactly 9 (Core, version, runner) cells covering the same {lts,1,pre} × {ubuntu, macos, windows} set. runtests.jl already dispatches the identical testset list for both "All" and "Core" (GROUP == "All" || GROUP == "Core"), so the per-cell behavior is preserved — the only change is the dispatched GROUP string going from the implicit All to Core. The TOML and YAML both parse cleanly.

Category A / QA

This repo already has Core/GPU GROUP dispatch in runtests.jl, and QA (Aqua + ExplicitImports via qa.jl/explicit_imports.jl) runs inline as part of the Core path — there is no separate QA GROUP branch, so no runtests.jl change was made and no separate QA group was added (that would require a source change). Static matrix-verify only; no QA findings.

Untouched: GPU.yml, Downgrade.yml, Documentation.yml, FormatCheck.yml, RunicSuggestions.yml, SpellCheck.yml, TagBot.yml, DocPreviewCleanup.yml, DependabotAutoMerge.yml.

Ignore until reviewed by @ChrisRackauckas.

Convert the root Tests.yml test workflow to the canonical thin caller of
SciML/.github grouped-tests.yml@v1, with the version/OS matrix declared once
in test/test_groups.toml. Filename and top-level `name: "Tests"` are preserved
so branch-protection status checks stay valid; `on:` triggers and
`concurrency:` are kept verbatim.

The previous matrix ran the full suite (GROUP defaulting to "All") on
version x os = {1,lts,pre} x {ubuntu-latest,macos-latest,windows-latest}.
The new test_groups.toml declares a single capitalized "Core" group on the
same version set with os = [ubuntu-latest, macos-latest, windows-latest].
runtests.jl already dispatches the identical testset list for both "All" and
"Core", so the (version, runner) coverage is reproduced exactly (9/9).

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 aa249d9 into SciML:master Jun 8, 2026
8 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