Explicitly install required components in CI and switch from the doc_auto_cfg feature to the doc_cfg feature.
#873
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - name: Format | |
| run: cargo fmt --check | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-all-features | |
| - name: Check all feature combinations | |
| run: cargo check-all-features | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - name: Run clippy | |
| run: cargo clippy --all-features -- -D warnings | |
| test: | |
| strategy: | |
| matrix: | |
| toolchain: [stable, beta] | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-all-features | |
| - name: Test all feature combinations | |
| run: cargo test-all-features | |
| doc: | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTFLAGS: -D warnings | |
| RUSTDOCFLAGS: --cfg docsrs | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| - name: Generate documentation | |
| run: cargo +nightly doc --all-features --no-deps | |
| verify_rust_version: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-msrv | |
| - name: Verify MSRV | |
| run: cargo msrv --output-format minimal verify --features serde,rkyv,zerocopy | |
| - name: Verify raised MSRV | |
| run: cargo msrv --output-format minimal verify --features fast_test --rust-version 1.84.0 | |
| coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: llvm-tools-preview | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - name: Install cargo-llvm-cov | |
| uses: taiki-e/install-action@cargo-llvm-cov | |
| - name: Generate lockfile | |
| if: hashFiles('Cargo.lock') == '' | |
| run: cargo generate-lockfile | |
| - name: Generate coverage reports | |
| run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@v4 | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| with: | |
| fail_ci_if_error: true | |
| semver-checks: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-semver-checks | |
| - name: Verify semver compatibility | |
| run: cargo semver-checks | |
| bench: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - name: Compile benchmarks | |
| # There are no benchmarks with "nothing" in their name, hence this command only compiles the benchmarks but does not run them. | |
| run: cargo bench nothing | |
| no_std: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| target: [thumbv7m-none-eabi, aarch64-unknown-none] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| target: ${{ matrix.target }} | |
| - name: Cache | |
| uses: Swatinem/[email protected] | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-all-features | |
| - name: Check | |
| run: cargo check-all-features -- --target ${{ matrix.target }} |