From 48c9b11458614acaecc51aca24db43baa667ec31 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 2 Jun 2026 12:46:55 -0400 Subject: [PATCH] Migrate CI to centralized SciML/.github reusable workflows Convert Tests, Documentation, Runic format check, SpellCheck, and Downgrade workflows to call the centralized reusable workflows in SciML/.github (pinned @v1). Remove CompatHelper in favor of Dependabot julia ecosystem updates. - CI.yml: tests.yml@v1 caller, preserving the Core/Datafit group matrix on Julia '1' with coverage. - Documentation.yml: documentation.yml@v1 caller (coverage preserved). - FormatCheck.yml: runic.yml@v1 caller (repo already Runic-formatted). - SpellCheck.yml: spellcheck.yml@v1 caller. - Downgrade.yml: downgrade.yml@v1 caller (julia 1.10, skip Pkg,TOML, allow-reresolve false). - Remove CompatHelper.yml. - dependabot.yml: drop the crate-ci/typos ignore block; add a julia ecosystem block for / and /docs (daily, grouped). Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/dependabot.yml | 13 +++++++--- .github/workflows/CI.yml | 39 ++++++++--------------------- .github/workflows/CompatHelper.yml | 26 ------------------- .github/workflows/Documentation.yml | 29 ++++++--------------- .github/workflows/Downgrade.yml | 29 ++++++++------------- .github/workflows/FormatCheck.yml | 19 ++++++-------- .github/workflows/SpellCheck.yml | 12 +++------ 7 files changed, 49 insertions(+), 118 deletions(-) delete mode 100644 .github/workflows/CompatHelper.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ec3b005a..b777cff5 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/CI.yml b/.github/workflows/CI.yml index fcfb5d71..1312ab60 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -10,39 +10,22 @@ on: - main paths-ignore: - 'docs/**' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: - test: - runs-on: ubuntu-latest + tests: + name: "Tests" strategy: + fail-fast: false matrix: group: - Core - Datafit version: - '1' - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v3 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v5 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 - env: - GROUP: ${{ matrix.group }} - JULIA_NUM_THREADS: 11 - - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v6 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: true + uses: "SciML/.github/.github/workflows/tests.yml@v1" + with: + julia-version: "${{ matrix.version }}" + group: "${{ matrix.group }}" + secrets: "inherit" diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml deleted file mode 100644 index 73494545..00000000 --- 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/Documentation.yml b/.github/workflows/Documentation.yml index 81198de8..4abaaba0 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -1,5 +1,4 @@ name: Documentation - on: push: branches: @@ -7,25 +6,11 @@ on: - 'release-' tags: '*' pull_request: - +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@latest - with: - version: '1' - - name: Install dependencies - run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' - - name: Build and deploy - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token - DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key - run: julia --project=docs/ --code-coverage=user docs/make.jl - - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v6 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: true + documentation: + name: "Documentation" + uses: "SciML/.github/.github/workflows/documentation.yml@v1" + secrets: "inherit" diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 6a5bb522..20f2043c 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -10,22 +10,15 @@ on: - master paths-ignore: - 'docs/**' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: - test: - runs-on: ubuntu-latest - strategy: - matrix: - downgrade_mode: ['alldeps'] - julia-version: ['1.10'] - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v3 - with: - version: ${{ matrix.julia-version }} - - uses: julia-actions/julia-downgrade-compat@v2 - with: - skip: Pkg,TOML - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 - with: - ALLOW_RERESOLVE: false \ No newline at end of file + downgrade: + name: "Downgrade" + uses: "SciML/.github/.github/workflows/downgrade.yml@v1" + with: + julia-version: "1.10" + skip: "Pkg,TOML" + allow-reresolve: false + secrets: "inherit" diff --git a/.github/workflows/FormatCheck.yml b/.github/workflows/FormatCheck.yml index ee667cef..abc1c5e4 100644 --- a/.github/workflows/FormatCheck.yml +++ b/.github/workflows/FormatCheck.yml @@ -1,5 +1,4 @@ -name: format-check - +name: FormatCheck on: push: branches: @@ -8,15 +7,11 @@ on: - 'release-' tags: '*' pull_request: - +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: runic: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v3 - with: - version: '1' - - uses: fredrikekre/runic-action@v1 - with: - version: '1' + name: "Runic" + uses: "SciML/.github/.github/workflows/runic.yml@v1" + secrets: "inherit" diff --git a/.github/workflows/SpellCheck.yml b/.github/workflows/SpellCheck.yml index 746b039a..16d404b7 100644 --- a/.github/workflows/SpellCheck.yml +++ b/.github/workflows/SpellCheck.yml @@ -1,13 +1,7 @@ name: Spell Check - 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 + name: "Spell Check with Typos" + uses: "SciML/.github/.github/workflows/spellcheck.yml@v1" + secrets: "inherit"