From e47f55afe1c7bc574118c5be9dd2303e38249ce4 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Mon, 8 Jun 2026 07:25:30 -0400 Subject: [PATCH] Simplify root CI to grouped-tests.yml (matrix from test/test_groups.toml) Replace the hand-maintained group x version matrix (plus the bespoke GPU job) in the root CI.yml `tests` job with the reusable grouped-tests.yml@v1 thin caller. The matrix now lives in test/test_groups.toml and is computed by compute_affected_sublibraries.jl --root-matrix. The root runtests.jl dispatches on the default GROUP env var, so no group-env-name override is needed. check-bounds: auto is preserved as a workflow-level input. coverage-directories defaults to src,ext (matches old). Verified the computed root matrix equals the old workflow's (group, version, runner) set exactly: 14/14. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/CI.yml | 40 +--------------------------------------- test/test_groups.toml | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 39 deletions(-) create mode 100644 test/test_groups.toml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c51c30b8..83d171d9 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -18,45 +18,7 @@ concurrency: jobs: tests: - name: "Tests" - strategy: - fail-fast: false - matrix: - version: - - "lts" - - "1" - - "pre" - group: - - "Core" - - "QA" - - "SymbolicIndexingInterface" - - "Downstream" - - "NoPre" - exclude: - # JET (NoPre) is not run on prereleases. - - version: "pre" - group: "NoPre" - # QA (Aqua) runs only on lts and 1, never on prereleases. - - version: "pre" - group: "QA" - uses: "SciML/.github/.github/workflows/tests.yml@v1" + uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1" with: - julia-version: "${{ matrix.version }}" - group: "${{ matrix.group }}" - num-threads: "2" check-bounds: "auto" - coverage-directories: "src,ext" - secrets: "inherit" - - # GPU tests are a dep-adding group (test/GPU/Project.toml) that runs on the - # self-hosted GPU runner. Folded in from the former bespoke GPU.yml. - gpu: - name: "GPU Tests" - uses: "SciML/.github/.github/workflows/tests.yml@v1" - with: - julia-version: "1" - group: "GPU" - runner: '["self-hosted", "Linux", "X64", "gpu"]' - timeout-minutes: 60 - coverage-directories: "src,ext" secrets: "inherit" diff --git a/test/test_groups.toml b/test/test_groups.toml new file mode 100644 index 00000000..2da0790b --- /dev/null +++ b/test/test_groups.toml @@ -0,0 +1,24 @@ +[Core] +versions = ["lts", "1", "pre"] +num_threads = 2 + +[QA] +versions = ["lts", "1"] +num_threads = 2 + +[SymbolicIndexingInterface] +versions = ["lts", "1", "pre"] +num_threads = 2 + +[Downstream] +versions = ["lts", "1", "pre"] +num_threads = 2 + +[NoPre] +versions = ["lts", "1"] +num_threads = 2 + +[GPU] +versions = ["1"] +runner = ["self-hosted", "Linux", "X64", "gpu"] +timeout = 60