name: CI on: push: branches: - main pull_request: types: [opened, reopened, synchronize] jobs: rustfmt: name: rustfmt ${{matrix.toolchain}} on ${{matrix.os}} runs-on: ${{matrix.os}}-latest strategy: fail-fast: false matrix: toolchain: [nightly] os: [ubuntu] steps: - uses: actions/checkout@v4 - name: Install minimal Rust with rustfmt uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{matrix.toolchain}} components: rustfmt override: true - name: fmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: clippy ${{matrix.toolchain}} on ${{matrix.os}} runs-on: ${{matrix.os}}-latest strategy: fail-fast: false matrix: toolchain: [nightly] os: [ubuntu] steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install minimal Rust with clippy uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{matrix.toolchain}} components: clippy override: true - name: Clippy uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets -- -D clippy::all -D warnings - name: Clippy all features uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets --all-features -- -D clippy::all -D warnings test: name: test ${{matrix.toolchain}} on ${{matrix.os}} with ${{matrix.features}} runs-on: ${{matrix.os}}-latest strategy: fail-fast: false matrix: toolchain: [stable, nightly] os: [ubuntu] features: ["--features default,serde", --no-default-features] timeout-minutes: 30 steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: ${{matrix.toolchain}} override: true - name: Test uses: actions-rs/cargo@v1 with: command: test args: ${{matrix.features}} no-std: name: build ${{matrix.toolchain}} no-std for wasm32-unknown-unknown runs-on: ubuntu-latest strategy: fail-fast: false matrix: toolchain: [stable, nightly] steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: ${{matrix.toolchain}} override: true - run: rustup target add wasm32-unknown-unknown - name: Build uses: actions-rs/cargo@v1 with: command: build args: --no-default-features --target wasm32-unknown-unknown docs: name: Verify the docs on ${{matrix.toolchain}} runs-on: ubuntu-latest strategy: fail-fast: false matrix: toolchain: [stable] steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install rust uses: actions-rs/toolchain@v1 with: toolchain: ${{matrix.toolchain}} override: true - name: Check docs uses: actions-rs/cargo@v1 env: RUSTDOCFLAGS: -D warnings with: command: doc args: --verbose --all-features --keep-going