name: Rust on: push: branches: [main] paths: - "lib/crates/**" - "test/**" - "Cargo.toml" - "Cargo.lock" - ".cargo/**" - ".config/**" - "bin/dev/**" - "docs/public/reference/cli.mdx" - "docs/public/reference/user-configuration.mdx" - "openapi/**" - ".github/workflows/rust.yml" pull_request: branches: [main] paths: - "lib/crates/**" - "test/**" - "Cargo.toml" - "Cargo.lock" - ".cargo/**" - ".config/**" - "bin/dev/**" - "docs/public/reference/cli.mdx" - "docs/public/reference/user-configuration.mdx" - "openapi/**" - ".github/workflows/rust.yml" workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: {} env: CARGO_TERM_COLOR: always jobs: fmt: name: Format runs-on: ubuntu-24.04-x86-32-cores permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable with: toolchain: nightly-2026-04-14 components: rustfmt - run: cargo +nightly-2026-04-14 fmt --check --all clippy: name: Clippy runs-on: ubuntu-24.04-x86-32-cores permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable with: toolchain: nightly-2026-04-14 components: clippy - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2 with: cache-on-failure: true - run: cargo +nightly-2026-04-14 clippy --workspace --all-targets -- -D warnings generated-docs: name: Generated Docs runs-on: ubuntu-24.04-x86-32-cores permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2 with: cache-on-failure: true - run: cargo dev docs check test: name: Test (Linux) runs-on: ubuntu-24.04-x86-32-cores permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2 with: cache-on-failure: true - uses: taiki-e/install-action@773334c0e05d7e699e4d78234494308223f3a2cf # nextest - run: cargo nextest run --workspace --status-level slow --profile ci test-macos: name: Test (macOS) if: github.event_name == 'workflow_dispatch' runs-on: macos-15 permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2 with: cache-on-failure: true - uses: taiki-e/install-action@773334c0e05d7e699e4d78234494308223f3a2cf # nextest - run: cargo nextest run --workspace --status-level slow --profile ci