Skip to content

Commit 6194aec

Browse files
authored
Update CI for individual package testing combinations (#249)
Add isolated and directory-changes triggered tests for subpackages
1 parent ab524ba commit 6194aec

8 files changed

Lines changed: 450 additions & 3 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: CI
1+
name: MRIReco_All
22
on:
33
pull_request:
44
branches:
@@ -8,8 +8,8 @@ on:
88
- master
99
- '*'
1010
tags: '*'
11-
jobs:
12-
test:
11+
jobs:
12+
test_all_latest:
1313
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
1414
runs-on: ${{ matrix.os }}
1515
strategy:

.github/workflows/ci_mribase.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: MRIBase
2+
on:
3+
pull_request:
4+
branches:
5+
- master
6+
paths:
7+
- 'MRIBase/**'
8+
push:
9+
branches:
10+
- master
11+
- '*'
12+
tags: '*'
13+
paths:
14+
- 'MRIBase/**'
15+
jobs:
16+
test:
17+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
18+
runs-on: ${{ matrix.os }}
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
version:
23+
- '1' # Leave this line unchanged. '1' will automatically expand to the latest stable 1.x release of Julia.
24+
- '1.10' #LTS
25+
#- 'nightly'
26+
os:
27+
- ubuntu-latest
28+
- macos-latest
29+
- windows-latest
30+
arch:
31+
- x64
32+
steps:
33+
- uses: actions/checkout@v3
34+
- uses: julia-actions/setup-julia@v1
35+
with:
36+
version: ${{ matrix.version }}
37+
arch: ${{ matrix.arch }}
38+
- uses: actions/cache@v3
39+
env:
40+
cache-name: cache-artifacts
41+
with:
42+
path: ~/.julia/artifacts
43+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
44+
restore-keys: |
45+
${{ runner.os }}-test-${{ env.cache-name }}-
46+
${{ runner.os }}-test-
47+
${{ runner.os }}-
48+
- name: Install MRIBase
49+
shell: julia --color=yes --project=. {0}
50+
run: |
51+
using Pkg
52+
Pkg.develop([PackageSpec(path=pwd(), subdir="MRIBase")])
53+
- uses: julia-actions/julia-buildpkg@v1
54+
- name: Run MRIBase tests
55+
shell: julia --color=yes --project=. {0}
56+
run: |
57+
using Pkg
58+
Pkg.test("MRIBase")
59+
- uses: julia-actions/julia-processcoverage@v1
60+
with:
61+
directories: MRIBase/src
62+
- uses: codecov/codecov-action@v4.4.0
63+
with:
64+
token: ${{ secrets.CODECOV_TOKEN }}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: MRICoilSensitivities
2+
on:
3+
pull_request:
4+
branches:
5+
- master
6+
paths:
7+
- 'MRICoilSensitivities/**'
8+
9+
push:
10+
branches:
11+
- master
12+
- '*'
13+
tags: '*'
14+
paths:
15+
- 'MRICoilSensitivities/**'
16+
jobs:
17+
test:
18+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
19+
runs-on: ${{ matrix.os }}
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
version:
24+
- '1' # Leave this line unchanged. '1' will automatically expand to the latest stable 1.x release of Julia.
25+
- '1.10' #LTS
26+
#- 'nightly'
27+
os:
28+
- ubuntu-latest
29+
- macos-latest
30+
- windows-latest
31+
arch:
32+
- x64
33+
steps:
34+
- uses: actions/checkout@v3
35+
- uses: julia-actions/setup-julia@v1
36+
with:
37+
version: ${{ matrix.version }}
38+
arch: ${{ matrix.arch }}
39+
- uses: actions/cache@v3
40+
env:
41+
cache-name: cache-artifacts
42+
with:
43+
path: ~/.julia/artifacts
44+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
45+
restore-keys: |
46+
${{ runner.os }}-test-${{ env.cache-name }}-
47+
${{ runner.os }}-test-
48+
${{ runner.os }}-
49+
- name: Install MRICoilSensitivities
50+
shell: julia --color=yes --project=. {0}
51+
run: |
52+
using Pkg
53+
Pkg.develop([PackageSpec(path=pwd(), subdir="MRICoilSensitivities")])
54+
- uses: julia-actions/julia-buildpkg@v1
55+
- name: Run MRICoilSensitivities tests
56+
shell: julia --color=yes --project=. {0}
57+
run: |
58+
using Pkg
59+
Pkg.test("MRICoilSensitivities")
60+
- uses: julia-actions/julia-processcoverage@v1
61+
with:
62+
directories: MRICoilSensitivities/src
63+
- uses: codecov/codecov-action@v4.4.0
64+
with:
65+
token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/ci_mrifiles.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: MRIFiles
2+
on:
3+
pull_request:
4+
branches:
5+
- master
6+
paths:
7+
- 'MRIFiles/**'
8+
9+
push:
10+
branches:
11+
- master
12+
- '*'
13+
tags: '*'
14+
paths:
15+
- 'MRIFiles/**'
16+
jobs:
17+
test:
18+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
19+
runs-on: ${{ matrix.os }}
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
version:
24+
- '1' # Leave this line unchanged. '1' will automatically expand to the latest stable 1.x release of Julia.
25+
- '1.10' #LTS
26+
#- 'nightly'
27+
os:
28+
- ubuntu-latest
29+
- macos-latest
30+
- windows-latest
31+
arch:
32+
- x64
33+
steps:
34+
- uses: actions/checkout@v3
35+
- uses: julia-actions/setup-julia@v1
36+
with:
37+
version: ${{ matrix.version }}
38+
arch: ${{ matrix.arch }}
39+
- uses: actions/cache@v3
40+
env:
41+
cache-name: cache-artifacts
42+
with:
43+
path: ~/.julia/artifacts
44+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
45+
restore-keys: |
46+
${{ runner.os }}-test-${{ env.cache-name }}-
47+
${{ runner.os }}-test-
48+
${{ runner.os }}-
49+
- name: Install MRIFiles
50+
shell: julia --color=yes --project=. {0}
51+
run: |
52+
using Pkg
53+
Pkg.develop([PackageSpec(path=pwd(), subdir="MRIFiles")])
54+
- uses: julia-actions/julia-buildpkg@v1
55+
- name: Run subpackage tests
56+
shell: julia --color=yes --project=. {0}
57+
run: |
58+
using Pkg
59+
Pkg.test("MRIFiles")
60+
- uses: julia-actions/julia-processcoverage@v1
61+
with:
62+
directories: MRIFiles/src
63+
- uses: codecov/codecov-action@v4.4.0
64+
with:
65+
token: ${{ secrets.CODECOV_TOKEN }}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: MRIOperators
2+
on:
3+
pull_request:
4+
branches:
5+
- master
6+
paths:
7+
- 'MRIOperators/**'
8+
push:
9+
branches:
10+
- master
11+
- '*'
12+
tags: '*'
13+
paths:
14+
- 'MRIOperators/**'
15+
jobs:
16+
test:
17+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
18+
runs-on: ${{ matrix.os }}
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
version:
23+
- '1' # Leave this line unchanged. '1' will automatically expand to the latest stable 1.x release of Julia.
24+
- '1.10' #LTS
25+
#- 'nightly'
26+
os:
27+
- ubuntu-latest
28+
- macos-latest
29+
- windows-latest
30+
arch:
31+
- x64
32+
steps:
33+
- uses: actions/checkout@v3
34+
- uses: julia-actions/setup-julia@v1
35+
with:
36+
version: ${{ matrix.version }}
37+
arch: ${{ matrix.arch }}
38+
- uses: actions/cache@v3
39+
env:
40+
cache-name: cache-artifacts
41+
with:
42+
path: ~/.julia/artifacts
43+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
44+
restore-keys: |
45+
${{ runner.os }}-test-${{ env.cache-name }}-
46+
${{ runner.os }}-test-
47+
${{ runner.os }}-
48+
- name: Install MRIOperators
49+
shell: julia --color=yes --project=. {0}
50+
run: |
51+
using Pkg
52+
Pkg.develop([PackageSpec(path=pwd(), subdir="MRIOperators")])
53+
# Hack, MRIOperators tests depend on MRISimulation
54+
# And MRISimulation depends on MRIOperators
55+
# Can't checkout out latest release if compat breaks
56+
Pkg.develop([PackageSpec(path=pwd(), subdir="MRISimulation")])
57+
- uses: julia-actions/julia-buildpkg@v1
58+
- name: Run MRIOperators tests
59+
shell: julia --color=yes --project=. {0}
60+
run: |
61+
using Pkg
62+
Pkg.test("MRIOperators")
63+
- uses: julia-actions/julia-processcoverage@v1
64+
with:
65+
directories: MRIOperators/src
66+
- uses: codecov/codecov-action@v4.4.0
67+
with:
68+
token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/ci_mrireco.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: MRIReco
2+
on:
3+
pull_request:
4+
branches:
5+
- master
6+
paths:
7+
- 'ext/**'
8+
- 'src/**'
9+
push:
10+
branches:
11+
- master
12+
- '*'
13+
tags: '*'
14+
paths:
15+
- 'ext/**'
16+
- 'src/**'
17+
18+
jobs:
19+
test:
20+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
21+
runs-on: ${{ matrix.os }}
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
version:
26+
- '1.10'
27+
- '1'
28+
os:
29+
- ubuntu-latest
30+
- macOS-latest
31+
- windows-latest
32+
arch:
33+
- x64
34+
steps:
35+
- uses: actions/checkout@v3
36+
- uses: julia-actions/setup-julia@v1
37+
with:
38+
version: ${{ matrix.version }}
39+
arch: ${{ matrix.arch }}
40+
- uses: actions/cache@v3
41+
env:
42+
cache-name: cache-artifacts
43+
with:
44+
path: ~/.julia/artifacts
45+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
46+
restore-keys: |
47+
${{ runner.os }}-test-${{ env.cache-name }}-
48+
${{ runner.os }}-test-
49+
${{ runner.os }}-
50+
- uses: julia-actions/julia-buildpkg@v1
51+
- uses: julia-actions/julia-runtest@v1
52+
continue-on-error: ${{ matrix.version == 'nightly' }}
53+
- uses: julia-actions/julia-processcoverage@v1
54+
- uses: codecov/codecov-action@v3
55+
with:
56+
file: lcov.info

0 commit comments

Comments
 (0)