From a7a75404a4eaaf5e40de410457dad4abfd7bbd2d Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Mon, 8 Jun 2026 07:58:00 -0400 Subject: [PATCH] Canonical CI: grouped-tests.yml + root test/test_groups.toml Convert the root CI workflow (ci.yml, name: CI) from a hand-maintained group x version x os matrix calling tests.yml@v1 into a thin caller of the canonical grouped-tests.yml@v1. The matrix now lives in test/test_groups.toml at the repo root and is computed by compute_affected_sublibraries.jl --root-matrix. runtests.jl already dispatches on the GROUP env var via TestItemRunner tags ("All" = everything except :nopre-tagged items; "nopre" = only :nopre-tagged), so no runtests.jl change is needed (default group-env-name GROUP). The old job set no non-default tests.yml inputs (no check-bounds, coverage on, default src,ext, no apt packages), so the thin caller needs no `with:` block. on: triggers and concurrency: are preserved verbatim; name: CI is kept so the branch-protection status check is preserved. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 25 +------------------------ test/test_groups.toml | 13 +++++++++++++ 2 files changed, 14 insertions(+), 24 deletions(-) create mode 100644 test/test_groups.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b6416457..4b447d94 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,28 +21,5 @@ concurrency: jobs: tests: - name: "Tests" - strategy: - fail-fast: false - matrix: - group: - - "All" - - "nopre" - version: - - "1" - - "lts" - - "pre" - os: - - ubuntu-latest - - macOS-latest - - windows-latest - exclude: - # Don't run nopre tests on pre-release Julia - - group: "nopre" - version: "pre" - uses: "SciML/.github/.github/workflows/tests.yml@v1" - with: - julia-version: "${{ matrix.version }}" - os: "${{ matrix.os }}" - group: "${{ matrix.group }}" + uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1" secrets: "inherit" diff --git a/test/test_groups.toml b/test/test_groups.toml new file mode 100644 index 00000000..efba756b --- /dev/null +++ b/test/test_groups.toml @@ -0,0 +1,13 @@ +# Root test-group matrix for CurveFit.jl, consumed by the reusable +# grouped-tests.yml workflow via scripts/compute_affected_sublibraries.jl +# --root-matrix. runtests.jl reads the GROUP env var and dispatches via +# TestItemRunner tags: "All" runs everything except :nopre-tagged items, +# "nopre" runs only :nopre-tagged items. + +[All] +versions = ["1", "lts", "pre"] +os = ["ubuntu-latest", "macOS-latest", "windows-latest"] + +[nopre] +versions = ["1", "lts"] +os = ["ubuntu-latest", "macOS-latest", "windows-latest"]