Split latest package CI into parallel runs #741
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: All Packages (latest) | |
| on: | |
| pull_request: | |
| branches: | |
| - master | |
| push: | |
| branches: | |
| - master | |
| - '*' | |
| tags: '*' | |
| jobs: | |
| test_all_latest: | |
| name: ${{ matrix.package.name }} (Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ 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 }} | |
| - 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 {0} | |
| run: | | |
| using Pkg | |
| Pkg.activate(ENV["PKG_PATH"]) | |
| deps = filter(!isempty, split(ENV["DEPS"], ",")) | |
| if !isempty(deps) | |
| Pkg.develop(map(dep -> PackageSpec(path = dep), deps)) | |
| end | |
| Pkg.instantiate() | |
| - name: Run ${{ matrix.package.name }} tests | |
| env: | |
| PKG_PATH: ${{ matrix.package.path }} | |
| PKG_NAME: ${{ matrix.package.name }} | |
| shell: julia --color=yes {0} | |
| run: | | |
| using Pkg | |
| Pkg.activate(ENV["PKG_PATH"]) | |
| Pkg.status() | |
| 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 }} |