Skip to content

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

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

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

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Summary

Converts the root Tests.yml workflow into the canonical thin caller of SciML/.github/.github/workflows/grouped-tests.yml@v1, with the package's own test matrix declared once in a root test/test_groups.toml.

Before

Tests.yml hand-maintained a version × group matrix calling tests.yml@v1 directly:

  • versions {1, lts, pre} × groups {Core, QA}, with exclude: pre/QA.

After

Tests.yml is a thin caller:

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

and the matrix lives in test/test_groups.toml:

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

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

No with: inputs are needed: the old job relied entirely on tests.yml@v1 defaults (check-bounds: yes, coverage: true, coverage-directories: src,ext, standard GROUP env var read by runtests.jl), all of which the grouped-tests caller preserves. Linux-only, so no os field is set (default ubuntu-latest).

The on: triggers (pull_request + push on main, paths-ignore: docs/**), the concurrency: block, the workflow filename, and name: "Tests" are all preserved verbatim so branch-protection status checks remain intact. No other workflow files were touched.

Matrix match: 5/5 exact

julia scripts/compute_affected_sublibraries.jl . --root-matrix emits:

group version runner
Core lts ubuntu-latest
Core 1 ubuntu-latest
Core pre ubuntu-latest
QA lts ubuntu-latest
QA 1 ubuntu-latest

This is the identical 5-cell set the old {1,lts,pre} × {Core,QA} minus pre/QA matrix produced.

QA

This repo already has Core/QA GROUP dispatch in test/runtests.jl (QA runs Aqua, ExplicitImports, JET). Per Category A this is a static matrix-verification only conversion — no runtests.jl change and no local Aqua/JET run. The test_groups.toml + Tests.yml both parse cleanly (TOML and YAML validated).


Ignore until reviewed by @ChrisRackauckas.

Convert the root Tests.yml workflow to the canonical thin caller of
SciML/.github/.github/workflows/grouped-tests.yml@v1, with the test
matrix declared once in test/test_groups.toml at the repo root.

The previous Tests.yml hand-maintained a version x group matrix
({1,lts,pre} x {Core,QA}, excluding pre/QA) calling tests.yml@v1
directly. The new test_groups.toml declares Core on [lts,1,pre] and QA
on [lts,1], which the --root-matrix script reproduces as the identical
5-cell set. All defaults (check-bounds=yes, coverage=true,
coverage-directories=src,ext, GROUP env var) are unchanged, so the thin
caller needs no `with:` inputs. The `on:` triggers, `concurrency:`
block, workflow filename, and `name:` are preserved so branch-protection
status checks remain intact.

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:12
@ChrisRackauckas ChrisRackauckas merged commit 865d799 into SciML:main 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