on: push: branches: [main] pull_request: name: check jobs: fmt: runs-on: ubuntu-latest name: stable / fmt steps: - uses: actions/checkout@v3 with: submodules: true - name: Install stable uses: dtolnay/rust-toolchain@stable with: components: rustfmt - name: cargo fmt --check uses: actions-rs/cargo@v1 with: command: fmt args: --check clippy: runs-on: ubuntu-latest name: ${{ matrix.toolchain }} / clippy strategy: fail-fast: false matrix: toolchain: [stable, beta] steps: - uses: actions/checkout@v3 with: submodules: true - name: Install ${{ matrix.toolchain }} uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.toolchain }} components: clippy - name: cargo clippy uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} doc: runs-on: ubuntu-latest name: nightly / doc steps: - uses: actions/checkout@v3 with: submodules: true - name: Install nightly uses: dtolnay/rust-toolchain@nightly - name: cargo doc uses: actions-rs/cargo@v1 with: command: doc args: --no-deps --all-features env: RUSTDOCFLAGS: --cfg docsrs hack: runs-on: ubuntu-latest name: ubuntu / stable / features steps: - uses: actions/checkout@v3 with: submodules: true - name: Install stable uses: dtolnay/rust-toolchain@stable - name: cargo install cargo-hack uses: taiki-e/install-action@cargo-hack - name: cargo hack uses: actions-rs/cargo@v1 with: command: hack args: --feature-powerset check --lib --tests msrv: runs-on: ubuntu-latest # we use a matrix here just because env can't be used in job names # https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability strategy: matrix: msrv: [1.56.1] # 2021 edition requires 1.56 name: ubuntu / ${{ matrix.msrv }} steps: - uses: actions/checkout@v3 with: submodules: true - name: Install ${{ matrix.toolchain }} uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.msrv }} - name: cargo +${{ matrix.msrv }} check uses: actions-rs/cargo@v1 with: command: check