name: Test
on:
pull_request:
branches: main
env:
CARGO_TERM_COLOR: always
jobs:
Cargo:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
toolchain:
- beta
- nightly
- stable
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Toolchain
uses: actions-rs/toolchain@v1
with:
components: clippy, rustfmt
default: true
toolchain: ${{ matrix.toolchain }}
- name: Format
run: cargo fmt --all -- --check
- name: Lint math
run: cargo clippy --release --features math -- -D warnings
- name: Lint math tests
run: cargo clippy --release --features math --tests -- -D warnings
- name: Lint mechanics
run: cargo clippy --release --features mechanics -- -D warnings
- name: Lint mechanics tests
run: cargo clippy --release --features mechanics --tests -- -D warnings
- name: Lint constitutive
run: cargo clippy --release --features constitutive -- -D warnings
- name: Lint constitutive tests
run: cargo clippy --release --features constitutive --tests -- -D warnings
- name: Lint fem
run: cargo clippy --release --features fem -- -D warnings
- name: Lint fem tests
run: cargo clippy --release --features fem --tests -- -D warnings
- name: Test math
run: cargo test --release --features math
- name: Test mechanics
run: cargo test --release --features mechanics
- name: Test constitutive
run: cargo test --release --features constitutive
- name: Test fem
run: cargo test --release --features fem
- name: Tree
if: matrix.os == 'ubuntu-latest'
run: $([[ $(cargo tree --color always --edges normal --features fem | wc -l) -eq 1 ]])