Skip to content

ci: route CI through SciML/.github reusable workflows (@v1)#191

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:claude/centralize-ci
Jun 4, 2026
Merged

ci: route CI through SciML/.github reusable workflows (@v1)#191
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:claude/centralize-ci

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Centralizes this monorepo's GitHub Actions onto the shared SciML/.github reusable workflows (@v1), preserving the repo's existing config (version matrix, default branch master, triggers, paths-ignore, concurrency) and dropping no CI coverage.

Converted / consolidated workflows

File Before After
CI.yml (Tests) tests.yml@v1 with a manual project: matrix listing . + all 7 lib/* sublibraries, over version ["1","lts"] clean main-package caller of tests.yml@v1 over version ["1","lts"] (project . only)
SublibraryCI.yml (new) caller of sublibrary-tests.yml@v1 — auto-discovers lib/*, replacing the per-sublibrary project: entries that used to live in CI.yml
FormatCheck.yml bespoke fredrikekre/runic-action@v1 runic.yml@v1
SpellCheck.yml bespoke crate-ci/typos spellcheck.yml@v1

Sublibrary handling (monorepo)

This repo is a real monorepo: each of the 7 lib/<name>/ dirs has its own Project.toml and test/runtests.jl. The old CI.yml tested them by enumerating them in a project: matrix on tests.yml. That per-sublibrary CI is now consolidated into a single SublibraryCI.yml calling sublibrary-tests.yml@v1, which auto-discovers lib/* and runs only the sublibraries affected by a change. CI.yml is now reserved for the top-level DiffEqProblemLibrary package itself.

Note: sublibrary-tests.yml@v1 reads optional per-sublibrary config from lib/<name>/test/test_groups.toml. None exist here, so the reusable's defaults apply. The draft PR's own CI run will exercise this.

Intentionally left bespoke / untouched

  • Downgrade.yml — already a thin caller of downgrade.yml@v1 (julia 1.10, skip Pkg,TOML). Already reusable, so untouched. No DowngradeSublibraries.yml existed, so none was created (no existing sublibrary-downgrade coverage to preserve).
  • TagBot.yml — non-CI release automation (JuliaRegistries/TagBot); no reusable equivalent. Left local.

NOTE: required-status-check names change

Routing through the reusables changes the job names that appear as status checks, so branch protection on master must be updated:

  • Tests job names now come from tests.yml@v1 / sublibrary-tests.yml@v1 reusable jobs.
  • Format and spell-check job names now come from runic.yml@v1 / spellcheck.yml@v1.

Update the required-status-check list accordingly after merge, or required checks will appear "expected" forever.


Please ignore until reviewed by @ChrisRackauckas.

Centralize this monorepo's GitHub Actions onto the shared SciML/.github
reusable workflows, preserving the existing config and coverage.

- CI.yml (Tests): drop the manual project matrix that listed `.` plus each
  lib/* sublibrary; now a clean main-package caller of tests.yml@v1 over the
  existing version matrix ["1","lts"]. Per-sublibrary testing moves to
  SublibraryCI.yml below.
- SublibraryCI.yml (new): consolidates the per-sublibrary entries into a
  single caller of sublibrary-tests.yml@v1, which auto-discovers lib/*.
- FormatCheck.yml: bespoke fredrikekre/runic-action -> runic.yml@v1.
- SpellCheck.yml: bespoke crate-ci/typos -> spellcheck.yml@v1.

Left bespoke/untouched: Downgrade.yml (already uses downgrade.yml@v1),
TagBot.yml (non-CI automation, no reusable).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 4, 2026 15:23
@ChrisRackauckas ChrisRackauckas merged commit 0cd31a4 into SciML:master Jun 4, 2026
4 of 6 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