on: [push, pull_request]
name: Continuous integration
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- name: Install system dependencies
uses: ./.github/workflows/install-deps
with:
profile: base
- run: cargo check --release
checkvis:
name: Check visualization and bayesian
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- name: Install system dependencies
uses: ./.github/workflows/install-deps
with:
profile: visualization
- run: cargo check --release --features "visualization, bayesian"
checkmpi:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
rust: stable
mpi: openmpi
name: check ${{ matrix.os }} MPI
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup MPI
uses: mpi4py/setup-mpi@v1
with:
mpi: ${{ matrix.mpi }}
- uses: Swatinem/rust-cache@v2
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Install system dependencies
uses: ./.github/workflows/install-deps
with:
profile: mpi
- run: cargo check --release --features distributed_mpi
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Install system dependencies
uses: ./.github/workflows/install-deps
with:
profile: base
- run: cargo clippy
clippyvis:
name: Clippy visualization
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Install system dependencies
uses: ./.github/workflows/install-deps
with:
profile: visualization
- run: cargo clippy --features "visualization, bayesian"
clippympi:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
rust: stable
mpi: openmpi
name: clippy ${{ matrix.os }} MPI
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup MPI
uses: mpi4py/setup-mpi@v1
with:
mpi: ${{ matrix.mpi }}
- uses: Swatinem/rust-cache@v2
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Install system dependencies
uses: ./.github/workflows/install-deps
with:
profile: mpi
- run: cargo clippy --features distributed_mpi