{ "name": "CI", "on": { "push": { "branches": [ "trunk", "v*.x", "ci/*" ] }, "pull_request": { "branches": [ "trunk", "v*.x" ] } }, "jobs": { "check": { "name": "Check", "runs-on": "ubuntu-latest", "strategy": { "fail-fast": false, "matrix": { "rust": [ "stable", "beta", "nightly", "1.85.0" ] } }, "steps": [ { "uses": "actions/checkout@v4", "name": "Checkout" }, { "uses": "actions-rs/toolchain@v1", "with": { "profile": "minimal", "toolchain": "${{ matrix.rust }}", "override": true }, "name": "Install Rust ${{ matrix.rust }}" }, { "uses": "actions-rs/cargo@v1", "with": { "command": "check", "args": "--all-features" }, "name": "Run `cargo check`" }, { "uses": "actions-rs/cargo@v1", "with": { "command": "check", "args": "--bench *" }, "name": "Run `cargo check` on benches" }, { "uses": "actions-rs/cargo@v1", "with": { "command": "check", "args": "--examples" }, "name": "Check examples" } ] }, "test": { "name": "Test", "strategy": { "matrix": { "runner": [ "ubuntu-latest", "windows-latest", "macos-latest" ], "rust": [ "stable", "1.85.0" ], "features": [ "", "alloc", "alloc,derive", "std", "std,derive", "serde", "alloc,serde", "std,serde", "serde,derive", "alloc,serde,derive", "std,serde,derive", ] } }, "runs-on": "${{ matrix.runner }}", "steps": [ { "uses": "actions/checkout@v4", "name": "Checkout" }, { "uses": "actions-rs/toolchain@v1", "with": { "profile": "minimal", "toolchain": "${{ matrix.rust }}", "override": true }, "name": "Install Rust ${{ matrix.rust }}" }, { "run": "if [ -z \"${{ matrix.features }}\" ]\n then\n cargo test --no-default-features\n else\n cargo test --no-default-features --features ${{ matrix.features }}\n fi", "name": "Run `cargo test` on all features", "shell": "bash", "env": { "RUSTFLAGS": "-D warnings" } } ] }, "lints": { "name": "Lints", "runs-on": "ubuntu-latest", "steps": [ { "uses": "actions/checkout@v4", "name": "Checkout" }, { "uses": "actions-rs/toolchain@v1", "with": { "profile": "minimal", "toolchain": "1.85.0", "override": true, "components": "rustfmt, clippy" }, "name": "Install Rust stable" }, { "uses": "actions-rs/cargo@v1", "with": { "command": "fmt", "args": "--all -- --check" }, "name": "Run `cargo fmt`" }, { "uses": "actions-rs/cargo@v1", "with": { "command": "clippy", "args": "--all-features -- -D warnings" }, "name": "Run `cargo clippy`" } ] }, "compatibility": { "name": "Compatibility", "runs-on": "ubuntu-latest", "steps": [ { "uses": "actions/checkout@v4", "name": "Checkout" }, { "uses": "actions-rs/toolchain@v1", "with": { "profile": "minimal", "toolchain": "1.85.0", "override": true, }, "name": "Install Rust stable" }, { "uses": "actions-rs/cargo@v1", "with": { "command": "test", "args": "--manifest-path compatibility/Cargo.toml" }, "name": "Run compatibility tests" } ] } } }