Skip to content

Commit 2e5bc5d

Browse files
ci: revert unsafe sublibrary CI consolidation (keep main-package centralization)
The SublibraryCI.yml caller (sublibrary-tests.yml@v1) reduced coverage: the reusable sends GROUP=<pkg> (Core) and GROUP=<pkg>_QA, but several sublibrary runtests.jl files dispatch on different group names. In particular BoundaryValueDiffEqFIRK/test/runtests.jl only runs tests when GROUP is "EXPANDED" or "NESTED", so under the reusable's default groups FIRK ran ZERO test items. This repo has no lib/<name>/test/test_groups.toml to remap groups, so the consolidation silently dropped FIRK coverage (and risked the same for any sublibrary whose runtests.jl uses custom group tags). Fix, keeping the faithful main-package conversions: - Remove .github/workflows/SublibraryCI.yml. - Restore the 6 bespoke per-sublibrary CI files verbatim from the base branch (CI_BoundaryValueDiffEq{Ascher,Core,FIRK,MIRK,MIRKN,Shooting}.yml), so each sublibrary again runs its real GROUP matrix (FIRK: EXPANDED + NESTED; others: core) on 1.11 + lts. - Restore DowngradeSublibraries.yml verbatim from base. The consolidated caller routed through sublibrary-downgrade.yml@v1, which relies on the same default GROUP mechanism that mis-handles FIRK's groups; keeping it bespoke avoids the same coverage hazard (it remains disabled via `if: false`, #417, as before). - Restore julia-version: "1.10" on the Documentation caller; the base docs build pinned 1.10 and documentation.yml@v1 defaults to "1", which dropped the pin. Unchanged (still centralized) are the faithful main-package conversions the audit did not flag: BenchmarkPR -> benchmark.yml@v1, Documentation -> documentation.yml@v1 (now with the 1.10 pin), Downgrade -> downgrade.yml@v1, Downstream -> downstream.yml@v1, FormatCheck -> runic.yml@v1, SpellCheck -> spellcheck.yml@v1. CI_BoundaryValueDiffEq.yml (main tests) and QA.yml remain bespoke as in the original PR. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
1 parent f9d7134 commit 2e5bc5d

9 files changed

Lines changed: 479 additions & 37 deletions
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: "CI (BoundaryValueDiffEqAscher)"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
paths:
8+
- "lib/BoundaryValueDiffEqAscher/**"
9+
- ".github/workflows/CI_BoundaryValueDiffEqAscher.yml"
10+
- "lib/BoundaryValueDiffEqCore/**"
11+
push:
12+
branches:
13+
- master
14+
15+
concurrency:
16+
# Skip intermediate builds: always.
17+
# Cancel intermediate builds: only if it is a pull request build.
18+
group: ${{ github.workflow }}-${{ github.ref }}
19+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
20+
21+
env:
22+
RETESTITEMS_NWORKERS: 4
23+
RETESTITEMS_NWORKER_THREADS: 2
24+
25+
jobs:
26+
tests:
27+
runs-on: ${{ matrix.os }}
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
version:
32+
- "1.11"
33+
- "lts"
34+
#- "pre"
35+
group:
36+
- core
37+
os:
38+
- ubuntu-latest
39+
steps:
40+
- uses: actions/checkout@v6
41+
- uses: julia-actions/setup-julia@v3
42+
with:
43+
version: ${{ matrix.version }}
44+
- uses: actions/cache@v5
45+
env:
46+
cache-name: cache-artifacts
47+
with:
48+
path: ~/.julia/artifacts
49+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
50+
restore-keys: |
51+
${{ runner.os }}-test-${{ env.cache-name }}-
52+
${{ runner.os }}-test-
53+
${{ runner.os }}-
54+
- name: "Install Dependencies and Run Tests"
55+
run: |
56+
import Pkg
57+
Pkg.Registry.update()
58+
# Install packages present in subdirectories
59+
dev_pks = Pkg.PackageSpec[]
60+
for path in ("lib/BoundaryValueDiffEqCore",)
61+
push!(dev_pks, Pkg.PackageSpec(; path))
62+
end
63+
Pkg.develop(dev_pks)
64+
Pkg.instantiate()
65+
Pkg.test(; coverage="user")
66+
shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/BoundaryValueDiffEqAscher {0}
67+
- uses: julia-actions/julia-processcoverage@v1
68+
with:
69+
directories: lib/BoundaryValueDiffEqAscher/src,lib/BoundaryValueDiffEqCore/src
70+
- uses: codecov/codecov-action@v6
71+
with:
72+
files: lcov.info
73+
token: ${{ secrets.CODECOV_TOKEN }}
74+
verbose: true
75+
fail_ci_if_error: false
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: "CI (BoundaryValueDiffEqCore)"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
paths:
8+
- "lib/BoundaryValueDiffEqCore/**"
9+
- ".github/workflows/CI_BoundaryValueDiffEqCore.yml"
10+
push:
11+
branches:
12+
- master
13+
14+
concurrency:
15+
# Skip intermediate builds: always.
16+
# Cancel intermediate builds: only if it is a pull request build.
17+
group: ${{ github.workflow }}-${{ github.ref }}
18+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
19+
20+
env:
21+
RETESTITEMS_NWORKERS: 4
22+
RETESTITEMS_NWORKER_THREADS: 2
23+
24+
jobs:
25+
tests:
26+
runs-on: ${{ matrix.os }}
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
version:
31+
- "1.11"
32+
- "lts"
33+
#- "pre"
34+
group:
35+
- core
36+
os:
37+
- ubuntu-latest
38+
steps:
39+
- uses: actions/checkout@v6
40+
- uses: julia-actions/setup-julia@v3
41+
with:
42+
version: ${{ matrix.version }}
43+
- uses: actions/cache@v5
44+
env:
45+
cache-name: cache-artifacts
46+
with:
47+
path: ~/.julia/artifacts
48+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
49+
restore-keys: |
50+
${{ runner.os }}-test-${{ env.cache-name }}-
51+
${{ runner.os }}-test-
52+
${{ runner.os }}-
53+
- name: "Install Dependencies and Run Tests"
54+
run: |
55+
import Pkg
56+
Pkg.Registry.update()
57+
Pkg.instantiate()
58+
Pkg.test(; coverage="user")
59+
shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/BoundaryValueDiffEqCore {0}
60+
- uses: julia-actions/julia-processcoverage@v1
61+
with:
62+
directories: lib/BoundaryValueDiffEqCore/src
63+
- uses: codecov/codecov-action@v6
64+
with:
65+
files: lcov.info
66+
token: ${{ secrets.CODECOV_TOKEN }}
67+
verbose: true
68+
fail_ci_if_error: false
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: "CI (BoundaryValueDiffEqFIRK)"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
paths:
8+
- "lib/BoundaryValueDiffEqFIRK/**"
9+
- ".github/workflows/CI_BoundaryValueDiffEqFIRK.yml"
10+
- "lib/BoundaryValueDiffEqCore/**"
11+
push:
12+
branches:
13+
- master
14+
15+
concurrency:
16+
# Skip intermediate builds: always.
17+
# Cancel intermediate builds: only if it is a pull request build.
18+
group: ${{ github.workflow }}-${{ github.ref }}
19+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
20+
21+
env:
22+
RETESTITEMS_NWORKERS: 4
23+
RETESTITEMS_NWORKER_THREADS: 2
24+
25+
jobs:
26+
tests:
27+
runs-on: ${{ matrix.os }}
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
version:
32+
- "1.11"
33+
- "lts"
34+
#- "pre"
35+
group:
36+
- EXPANDED
37+
- NESTED
38+
os:
39+
- ubuntu-latest
40+
steps:
41+
- uses: actions/checkout@v6
42+
- uses: julia-actions/setup-julia@v3
43+
with:
44+
version: ${{ matrix.version }}
45+
- uses: actions/cache@v5
46+
env:
47+
cache-name: cache-artifacts
48+
with:
49+
path: ~/.julia/artifacts
50+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
51+
restore-keys: |
52+
${{ runner.os }}-test-${{ env.cache-name }}-
53+
${{ runner.os }}-test-
54+
${{ runner.os }}-
55+
- name: "Install Dependencies and Run Tests"
56+
run: |
57+
import Pkg
58+
Pkg.Registry.update()
59+
# Install packages present in subdirectories
60+
dev_pks = Pkg.PackageSpec[]
61+
for path in ("lib/BoundaryValueDiffEqCore",)
62+
push!(dev_pks, Pkg.PackageSpec(; path))
63+
end
64+
Pkg.develop(dev_pks)
65+
Pkg.instantiate()
66+
Pkg.test(; coverage="user")
67+
shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/BoundaryValueDiffEqFIRK {0}
68+
env:
69+
GROUP: ${{ matrix.group }}
70+
- uses: julia-actions/julia-processcoverage@v1
71+
with:
72+
directories: lib/BoundaryValueDiffEqFIRK/src,lib/BoundaryValueDiffEqCore/src
73+
- uses: codecov/codecov-action@v6
74+
with:
75+
files: lcov.info
76+
token: ${{ secrets.CODECOV_TOKEN }}
77+
verbose: true
78+
fail_ci_if_error: false
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: "CI (BoundaryValueDiffEqMIRK)"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
paths:
8+
- "lib/BoundaryValueDiffEqMIRK/**"
9+
- ".github/workflows/CI_BoundaryValueDiffEqMIRK.yml"
10+
- "lib/BoundaryValueDiffEqCore/**"
11+
push:
12+
branches:
13+
- master
14+
15+
concurrency:
16+
# Skip intermediate builds: always.
17+
# Cancel intermediate builds: only if it is a pull request build.
18+
group: ${{ github.workflow }}-${{ github.ref }}
19+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
20+
21+
env:
22+
RETESTITEMS_NWORKERS: 4
23+
RETESTITEMS_NWORKER_THREADS: 2
24+
25+
jobs:
26+
tests:
27+
runs-on: ${{ matrix.os }}
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
version:
32+
- "1.11"
33+
- "lts"
34+
#- "pre"
35+
group:
36+
- core
37+
os:
38+
- ubuntu-latest
39+
steps:
40+
- uses: actions/checkout@v6
41+
- uses: julia-actions/setup-julia@v3
42+
with:
43+
version: ${{ matrix.version }}
44+
- uses: actions/cache@v5
45+
env:
46+
cache-name: cache-artifacts
47+
with:
48+
path: ~/.julia/artifacts
49+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
50+
restore-keys: |
51+
${{ runner.os }}-test-${{ env.cache-name }}-
52+
${{ runner.os }}-test-
53+
${{ runner.os }}-
54+
- name: "Install Dependencies and Run Tests"
55+
run: |
56+
import Pkg
57+
Pkg.Registry.update()
58+
# Install packages present in subdirectories
59+
dev_pks = Pkg.PackageSpec[]
60+
for path in ("lib/BoundaryValueDiffEqCore",)
61+
push!(dev_pks, Pkg.PackageSpec(; path))
62+
end
63+
Pkg.develop(dev_pks)
64+
Pkg.instantiate()
65+
Pkg.test(; coverage="user")
66+
shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/BoundaryValueDiffEqMIRK {0}
67+
- uses: julia-actions/julia-processcoverage@v1
68+
with:
69+
directories: lib/BoundaryValueDiffEqMIRK/src,lib/BoundaryValueDiffEqCore/src
70+
- uses: codecov/codecov-action@v6
71+
with:
72+
files: lcov.info
73+
token: ${{ secrets.CODECOV_TOKEN }}
74+
verbose: true
75+
fail_ci_if_error: false
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: "CI (BoundaryValueDiffEqMIRKN)"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
paths:
8+
- "lib/BoundaryValueDiffEqMIRKN/**"
9+
- ".github/workflows/CI_BoundaryValueDiffEqMIRKN.yml"
10+
- "lib/BoundaryValueDiffEqCore/**"
11+
push:
12+
branches:
13+
- master
14+
15+
concurrency:
16+
# Skip intermediate builds: always.
17+
# Cancel intermediate builds: only if it is a pull request build.
18+
group: ${{ github.workflow }}-${{ github.ref }}
19+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
20+
21+
env:
22+
RETESTITEMS_NWORKERS: 4
23+
RETESTITEMS_NWORKER_THREADS: 2
24+
25+
jobs:
26+
tests:
27+
runs-on: ${{ matrix.os }}
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
version:
32+
- "1.11"
33+
- "lts"
34+
#- "pre"
35+
group:
36+
- core
37+
os:
38+
- ubuntu-latest
39+
steps:
40+
- uses: actions/checkout@v6
41+
- uses: julia-actions/setup-julia@v3
42+
with:
43+
version: ${{ matrix.version }}
44+
- uses: actions/cache@v5
45+
env:
46+
cache-name: cache-artifacts
47+
with:
48+
path: ~/.julia/artifacts
49+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
50+
restore-keys: |
51+
${{ runner.os }}-test-${{ env.cache-name }}-
52+
${{ runner.os }}-test-
53+
${{ runner.os }}-
54+
- name: "Install Dependencies and Run Tests"
55+
run: |
56+
import Pkg
57+
Pkg.Registry.update()
58+
# Install packages present in subdirectories
59+
dev_pks = Pkg.PackageSpec[]
60+
for path in ("lib/BoundaryValueDiffEqCore",)
61+
push!(dev_pks, Pkg.PackageSpec(; path))
62+
end
63+
Pkg.develop(dev_pks)
64+
Pkg.instantiate()
65+
Pkg.test(; coverage="user")
66+
shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/BoundaryValueDiffEqMIRKN {0}
67+
- uses: julia-actions/julia-processcoverage@v1
68+
with:
69+
directories: lib/BoundaryValueDiffEqMIRKN/src,lib/BoundaryValueDiffEqCore/src
70+
- uses: codecov/codecov-action@v6
71+
with:
72+
files: lcov.info
73+
token: ${{ secrets.CODECOV_TOKEN }}
74+
verbose: true
75+
fail_ci_if_error: false

0 commit comments

Comments
 (0)