Canonical CI: grouped-tests.yml + root test/test_groups.toml#129
Merged
ChrisRackauckas merged 1 commit intoJun 8, 2026
Merged
Conversation
Convert the root test workflow (Tests.yml) into a thin caller of the canonical SciML/.github grouped-tests.yml@v1 reusable workflow, with the test matrix declared once in test/test_groups.toml at the repo root. The single "All" group (versions ["1","lts"], os [ubuntu-latest, macos-latest, windows-latest]) reproduces the previous Tests.yml matrix exactly: 6 cells, each running the full suite. runtests.jl runs QA whenever GROUP != "Core", so GROUP=All runs QA + all functional tests in one job per cell, identical to the old unset-GROUP behavior. on: triggers and concurrency: are preserved verbatim; name: "Tests" is kept so the branch-protection status check is unchanged. No other workflow files are touched and runtests.jl is unchanged. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Converts the root test workflow (
Tests.yml) into a thin caller of the canonical SciML reusablegrouped-tests.yml@v1, with the test matrix declared once in a roottest/test_groups.toml.Before:
Tests.ymlhand-maintained aversion × osmatrix ({1, lts} × {ubuntu, macos, windows}= 6 cells) and calledtests.yml@v1directly.After:
Tests.ymljobs.testsis now just:test/test_groups.tomldeclares a singleAllgroup:The
name: "Tests",on:triggers, andconcurrency:block are preserved verbatim, so the existing branch-protection status check is unchanged. Nowith:inputs are needed — all of group-env-name (GROUP), check-bounds (yes), coverage (true), coverage-directories (src,ext), and apt-packages match the reusable workflow defaults and the old job's behavior.Why a single
AllgroupThis repo's
test/runtests.jldispatches withconst GROUP = get(ENV, "GROUP", "All")and runs QA wheneverGROUP != "Core"; the functional testsets always run. The oldTests.ymlnever setGROUP, so every cell ran the full suite (QA + functional) under the defaultAll. A singleAllgroup reproduces that exactly:GROUP=All→ QA + all functional tests in one job per cell.runtests.jlis unchanged; QA is not isolated in this repo's dispatch, so a Core/QA split would either drop QA (Core excludes it) or duplicate the functional tests, neither of which reproduces the old matrix.Matrix match
Verified with
scripts/compute_affected_sublibraries.jl . --root-matrix(fromSciML/.github@v1). Emitted set:6/6 exact on (version, os), each cell running the identical full suite as before.
QA
QA (Aqua + JET) already exists in
test/qa.jland runs under this matrix as before. Per Category A, no local Aqua/JET run was performed andruntests.jlwas not modified.Project.tomlmetadata was checked statically:juliacompat floor is already"1.10"(LTS), every[targets].testentry is declared in[extras], every dep/extra has a[compat]entry, and there are no stale extras — no benign-metadata fixes were needed.YAML and TOML both parse cleanly (static-verified).
Ignore until reviewed by @ChrisRackauckas.