name: Push or PR on: [push, pull_request] env: CARGO_TERM_COLOR: always jobs: build_n_test: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: rustfmt if: ${{ !cancelled() }} run: cargo fmt --all -- --check - name: check if: ${{ !cancelled() }} run: cargo check --verbose - name: clippy if: ${{ !cancelled() }} run: cargo clippy --all-targets --all-features -- -D warnings - name: Build if: ${{ !cancelled() }} run: cargo build --verbose --tests --all-features - name: Abort on error if: ${{ failure() }} run: echo "Some of jobs failed" && false semver: name: Check semver strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: obi1kenobi/cargo-semver-checks-action@v2