Skip to content

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

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#462
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 test workflow into a thin caller of the canonical SciML/.github grouped-tests.yml@v1 reusable workflow, with the package's group × version matrix declared once in a root test/test_groups.toml.

Before

Tests.yml hand-maintained a matrix {version: ["1","lts","pre"]} × {group: ["Core","QA"]} (6 jobs) calling tests.yml@v1 directly.

After

  • The matrix lives in test/test_groups.toml:
    [Core]
    versions = ["1", "lts", "pre"]
    
    [QA]
    versions = ["1", "lts", "pre"]
  • Tests.yml becomes a thin caller:
    jobs:
      tests:
        uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
        secrets: "inherit"

Why no with: inputs

  • runtests.jl already dispatches on the standard GROUP env var (Core/QA) — no group-env-name override needed, and no runtests.jl change is required.
  • The old job used no check-bounds, coverage, coverage-directories, or apt-packages overrides, so the thin caller carries no with: block (all defaults match the old behavior).
  • Linux-only: no os field (defaults to ubuntu-latest), matching the original.

Preserved

  • name: "Tests", on: triggers, and concurrency: are kept verbatim so branch-protection status checks remain valid.
  • All other workflow files are untouched.

Matrix match

Ran compute_affected_sublibraries.jl . --root-matrix against the new test/test_groups.toml; it emits exactly the 6 cells the old workflow produced:

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

All runners ubuntu-latest, continue_on_error=false (no non-fatal group like Downstream is in this root matrix — Downstream is a separate workflow). 6/6 exact match.

QA

Category A — Core/QA GROUP dispatch already existed in runtests.jl; static matrix-verification only (no local Aqua run needed). test_groups.toml parses as valid TOML and Tests.yml parses as valid YAML.


Ignore until reviewed by @ChrisRackauckas.

Convert the root Tests.yml test workflow into a thin caller of the
canonical SciML/.github grouped-tests.yml@v1 reusable workflow, with the
group x version matrix declared once in test/test_groups.toml.

The previous workflow hand-maintained a {version: [1, lts, pre]} x
{group: [Core, QA]} matrix calling tests.yml@v1. That matrix now lives in
test/test_groups.toml (Core and QA each on ["1", "lts", "pre"]) and is
computed by compute_affected_sublibraries.jl --root-matrix.

runtests.jl already dispatches on the standard GROUP env var (Core/QA), so
no group-env-name input is needed and no runtests.jl change is required.
No check-bounds/coverage/apt-packages overrides were used by the old job,
so the thin caller carries no `with:` inputs. on: triggers and concurrency
are preserved verbatim; name: "Tests" is kept so branch-protection status
checks remain valid. All other workflow files are untouched.

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 dbe7a1e into SciML:main Jun 8, 2026
5 of 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