From 9fab99851668cee2cc855718ec40da329fcca666 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Wed, 3 Jun 2026 12:34:18 -0400 Subject: [PATCH] Centralize CI on SciML reusable workflows Convert remaining inline CI workflows to the centralized SciML/.github reusable workflows (@v1), with secrets: "inherit" on every caller. - FormatCheck.yml (Runic): inline fredrikekre/runic-action -> runic.yml@v1 - SpellCheck.yml: inline crate-ci/typos -> spellcheck.yml@v1 - Downgrade.yml: inline -> downgrade.yml@v1 (preserves if: false, julia 1.10, skip Pkg,TOML) - Downstream.yml (IntegrationTest): inline -> matrix of downstream.yml@v1 (ModelingToolkit.jl) - Delete CompatHelper.yml - dependabot.yml: drop crate-ci/typos ignore; add julia ecosystem block over / and /docs - Fix typo: resusable -> reusable in docs Tests.yml and Documentation.yml were already central callers; left as-is. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/dependabot.yml | 13 +++++-- .github/workflows/CompatHelper.yml | 26 -------------- .github/workflows/Downgrade.yml | 23 +++--------- .github/workflows/Downstream.yml | 51 +++++---------------------- .github/workflows/FormatCheck.yml | 11 ++---- .github/workflows/SpellCheck.yml | 9 ++--- docs/src/tutorials/input_component.md | 2 +- 7 files changed, 29 insertions(+), 106 deletions(-) delete mode 100644 .github/workflows/CompatHelper.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ec3b005a0..b777cff50 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,6 +5,13 @@ updates: directory: "/" # Location of package manifests schedule: interval: "weekly" - ignore: - - dependency-name: "crate-ci/typos" - update-types: ["version-update:semver-patch", "version-update:semver-minor"] + - package-ecosystem: "julia" + directories: + - "/" + - "/docs" + schedule: + interval: "daily" + groups: + all-julia-packages: + patterns: + - "*" diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml deleted file mode 100644 index 73494545f..000000000 --- a/.github/workflows/CompatHelper.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: CompatHelper - -on: - schedule: - - cron: '00 * * * *' - issues: - types: [opened, reopened] - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - julia-version: [1] - julia-arch: [x86] - os: [ubuntu-latest] - steps: - - uses: julia-actions/setup-julia@latest - with: - version: ${{ matrix.julia-version }} - - name: Pkg.add("CompatHelper") - run: julia -e 'using Pkg; Pkg.add("CompatHelper")' - - name: CompatHelper.main() - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: julia -e 'using CompatHelper; CompatHelper.main(;subdirs=["", "docs"])' diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index f1193942d..8eeb10f5e 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -13,21 +13,8 @@ on: jobs: test: if: false - runs-on: ubuntu-latest - strategy: - matrix: - downgrade_mode: ['alldeps'] - julia-version: ['1.10'] - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.julia-version }} - - uses: julia-actions/julia-downgrade-compat@v2 -# if: ${{ matrix.version == '1.6' }} - with: - skip: Pkg,TOML - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 - with: - ALLOW_RERESOLVE: false + uses: "SciML/.github/.github/workflows/downgrade.yml@v1" + with: + julia-version: "1.10" + skip: "Pkg,TOML" + secrets: "inherit" diff --git a/.github/workflows/Downstream.yml b/.github/workflows/Downstream.yml index 4183f9d17..ff1a71ce8 100644 --- a/.github/workflows/Downstream.yml +++ b/.github/workflows/Downstream.yml @@ -7,49 +7,16 @@ on: jobs: test: - name: ${{ matrix.package.repo }}/${{ matrix.package.group }}/${{ matrix.julia-version }} - runs-on: ${{ matrix.os }} - env: - GROUP: ${{ matrix.package.group }} + name: ${{ matrix.package.repo }}/${{ matrix.package.group }} strategy: fail-fast: false matrix: - julia-version: [1] - os: [ubuntu-latest] package: - - {user: SciML, repo: ModelingToolkit.jl} - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.julia-version }} - arch: x64 - - uses: julia-actions/julia-buildpkg@latest - - name: Clone Downstream - uses: actions/checkout@v6 - with: - repository: ${{ matrix.package.user }}/${{ matrix.package.repo }} - path: downstream - - name: Load this and run the downstream tests - shell: julia --color=yes --project=downstream {0} - run: | - using Pkg - try - # force it to use this PR's version of the package - Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps - Pkg.update() - Pkg.test(coverage=true) # resolver may fail with test time deps - catch err - err isa Pkg.Resolve.ResolverError || rethrow() - # If we can't resolve that means this is incompatible by SemVer and this is fine - # It means we marked this as a breaking change, so we don't need to worry about - # Mistakenly introducing a breaking change, as we have intentionally made one - @info "Not compatible with this release. No problem." exception=err - exit(0) # Exit immediately, as a success - end - - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v6 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: true + - { user: SciML, repo: ModelingToolkit.jl, group: All } + uses: "SciML/.github/.github/workflows/downstream.yml@v1" + with: + julia-version: "1" + repo: "${{ matrix.package.repo }}" + owner: "${{ matrix.package.user }}" + group: "${{ matrix.package.group }}" + secrets: "inherit" diff --git a/.github/workflows/FormatCheck.yml b/.github/workflows/FormatCheck.yml index 6253546f5..8dad7911e 100644 --- a/.github/workflows/FormatCheck.yml +++ b/.github/workflows/FormatCheck.yml @@ -11,12 +11,5 @@ on: jobs: runic: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v2 - with: - version: '1' - - uses: fredrikekre/runic-action@v1 - with: - version: '1' + uses: "SciML/.github/.github/workflows/runic.yml@v1" + secrets: "inherit" diff --git a/.github/workflows/SpellCheck.yml b/.github/workflows/SpellCheck.yml index 746b039a1..434bc7674 100644 --- a/.github/workflows/SpellCheck.yml +++ b/.github/workflows/SpellCheck.yml @@ -4,10 +4,5 @@ on: [pull_request] jobs: typos-check: - name: Spell Check with Typos - runs-on: ubuntu-latest - steps: - - name: Checkout Actions Repository - uses: actions/checkout@v6 - - name: Check spelling - uses: crate-ci/typos@v1.18.0 \ No newline at end of file + uses: "SciML/.github/.github/workflows/spellcheck.yml@v1" + secrets: "inherit" diff --git a/docs/src/tutorials/input_component.md b/docs/src/tutorials/input_component.md index 5f748e616..8984df516 100644 --- a/docs/src/tutorials/input_component.md +++ b/docs/src/tutorials/input_component.md @@ -242,7 +242,7 @@ Additional code could be added to resolve this issue, for example by using a `Re ## `SampledData` Component -To resolve the issues presented above, the `ModelingToolkitStandardLibrary.Blocks.SampledData` component can be used which allows for a resusable `System` and self contained data which ensures a solution which remains valid for it's lifetime. Now it's possible to also parallelize the call to `solve()`. +To resolve the issues presented above, the `ModelingToolkitStandardLibrary.Blocks.SampledData` component can be used which allows for a reusable `System` and self contained data which ensures a solution which remains valid for it's lifetime. Now it's possible to also parallelize the call to `solve()`. ```julia using ModelingToolkit