on: workflow_call: push: branches: - master pull_request: schedule: - cron: "0 0 * * *" jobs: rustfmt: name: Rustfmt runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable - name: Check Formatting run: cargo fmt --all -- --check clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable - name: Cache cargo registry, index and build directory uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git ./target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Clippy Linting run: cargo clippy --all-features -- -Dclippy::all -Dclippy::pedantic - name: Clippy Test Linting run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic test: name: Test Suite runs-on: ${{ matrix.os }} strategy: matrix: # add windows-latest when it is clear why tests are failing # os: [ubuntu-latest, macos-latest] os: [ubuntu-latest] steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable - name: Cache cargo registry, index and build directory uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git ./target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Run Tests run: cargo test