name: build on: push: branches: - main pull_request: permissions: read-all jobs: build: strategy: fail-fast: false matrix: build: [linux, linux-msrv, macos, win] include: - build: linux os: ubuntu-latest rust_version: stable - build: linux-msrv os: ubuntu-latest rust_version: "1.60" - build: macos os: macos-latest rust_version: stable - build: win os: windows-latest rust_version: stable runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 - name: Install Rust (${{ matrix.rust_version }}) uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af with: toolchain: ${{ matrix.rust_version }} override: true profile: minimal - name: Build uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 with: command: build args: --workspace --verbose - name: Test uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 with: command: test args: --workspace --verbose env: RUST_BACKTRACE: 1 rustfmt: name: Check formatting runs-on: ubuntu-latest steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af with: toolchain: nightly profile: minimal components: rustfmt override: true - uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 with: command: fmt args: --all -- --check cargo-deny: runs-on: ubuntu-latest strategy: matrix: checks: - advisories - bans licenses sources # Prevent sudden announcement of a new advisory from failing ci: continue-on-error: ${{ matrix.checks == 'advisories' }} steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 - uses: EmbarkStudios/cargo-deny-action@7257a18a9c2fe3f92b85d41ae473520dff953c97 with: command: check ${{ matrix.checks }} clippy-check: name: Clippy check permissions: checks: write runs-on: ubuntu-latest steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af with: toolchain: stable profile: minimal components: clippy override: true - uses: actions-rs/clippy-check@b5b5f21f4797c02da247df37026fcd0a5024aa4d with: token: ${{ secrets.GITHUB_TOKEN }} args: --all-features --workspace --all-targets -- -D warnings