name: Unit tests on: pull_request: push: branches: - main env: CARGO_TERM_COLOR: always CARGO_UNSTABLE_SPARSE_REGISTRY: "true" jobs: test: strategy: fail-fast: false matrix: os: - macos - ubuntu - windows runs-on: ${{ matrix.os }}-latest name: unit tests on ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Configure toolchain run: | rustup toolchain install nightly --component rustfmt,clippy --no-self-update --profile minimal rustup default nightly - name: Configure caching uses: actions/cache@v3 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-unit-tests-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-unit-tests - name: Install deps if: matrix.os == 'ubuntu' run: sudo .github/scripts/install-deps.sh - name: Test (Unix) if: matrix.os != 'windows' run: cargo test --no-default-features --features pkg-config,native-tls - name: Test (Windows) if: matrix.os == 'windows' run: cargo test --no-default-features --features native-tls - name: fmt run: cargo fmt --all --check - name: clippy run: cargo clippy --no-deps -- -D clippy::all