Skip to content

Split latest package CI into parallel runs #736

Split latest package CI into parallel runs

Split latest package CI into parallel runs #736

Workflow file for this run

name: All Packages (latest)
on:
pull_request:
branches:
- master
push:
branches:
- master
- '*'
tags: '*'
jobs:
test_all_latest:
name: ${{ matrix.package.name }} (latest, ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- '1' # Leave this line unchanged. '1' will automatically expand to the latest stable 1.x release of Julia.
- '1.10' #LTS
#- 'nightly'
os:
- ubuntu-latest
- macos-latest
- windows-latest
package:
- {name: MRIReco, path: ., deps: "MRIBase,MRIOperators,MRISimulation,MRISampling"}
- {name: MRIBase, path: MRIBase, deps: ""}
- {name: MRIFiles, path: MRIFiles, deps: ".,MRIBase,MRICoilSensitivities"}
- {name: MRIOperators, path: MRIOperators, deps: "MRIBase,MRISimulation"}
- {name: MRISampling, path: MRISampling, deps: "MRIBase"}
- {name: MRISimulation, path: MRISimulation, deps: "MRIBase,MRIOperators"}
- {name: MRICoilSensitivities, path: MRICoilSensitivities, deps: ".,MRIBase,MRISimulation,MRISampling"}
arch:
- x64
steps:
- uses: actions/checkout@v3
- uses: julia-actions/setup-julia@v1
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: actions/cache@v3
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 }}-
- name: Install Package and Dependencies
env:
PKG_PATH: ${{ matrix.package.path }}
DEPS: ${{ matrix.package.deps }}
shell: julia --color=yes --project=$PKG_PATH {0}
run: |
using Pkg
deps = split(ENV["DEPS"], ",")
if !isemtpy(deps)
Pkg.develop(map(dep -> PackageSpec(path = dep), deps))
end
- uses: julia-actions/julia-buildpkg@v1
- name: Run ${{ matrix.package.name }} tests
env:
PKG_PATH: ${{ matrix.package.path }}
PKG_NAME: ${{ matrix.package.name }}
shell: julia --color=yes --project=$PKG_PATH {0}
run: |
using Pkg
Pkg.test(ENV["PKG_NAME"])
- uses: julia-actions/julia-processcoverage@v1
with:
directories: ${{ matrix.package.path }}
- uses: codecov/codecov-action@v4
with:
file: lcov.info
flags: ${{ matrix.package.name }}
token: ${{ secrets.CODECOV_TOKEN }}
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: julia-actions/setup-julia@v1
with:
version: '1'
- name: Install subpackages
shell: julia --color=yes --project=docs {0}
run: |
using Pkg
Pkg.develop([PackageSpec(path=pwd())
, PackageSpec(path=pwd(), subdir="MRIBase")
, PackageSpec(path=pwd(), subdir="MRIFiles")
, PackageSpec(path=pwd(), subdir="MRISampling")
, PackageSpec(path=pwd(), subdir="MRISimulation")
, PackageSpec(path=pwd(), subdir="MRIOperators")
, PackageSpec(path=pwd(), subdir="MRICoilSensitivities")])
- run: |
julia --project=docs -e '
using Documenter: doctest
using MRIReco
doctest(MRIReco)' # change MYPACKAGE to the name of your package
- run: julia --project=docs docs/make.jl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}