name: CI on: push: branches: ['main'] pull_request: jobs: test: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] rust: [stable, beta] exclude: - os: macos-latest rust: beta - os: windows-latest rust: beta runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true - uses: actions-rs/cargo@v1 with: command: build args: --all-features --all-targets - uses: actions-rs/cargo@v1 with: command: test args: --all-features - uses: actions-rs/cargo@v1 with: command: test args: --no-default-features msrv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: "1.70.0" override: true - uses: actions-rs/cargo@v1 with: command: check args: --lib --all-features lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt, clippy - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - uses: actions-rs/cargo@v1 if: always() with: command: clippy args: --workspace --all-targets --all-features -- -D warnings audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: EmbarkStudios/cargo-deny-action@v1