{ "name": "CI", "on": { "push": { "branches": [ "trunk", "v*.x" ] }, "pull_request": { "branches": [ "trunk", "v*.x" ] } }, "jobs": { "check": { "name": "Check", "runs-on": "ubuntu-latest", "strategy": { "fail-fast": false, "matrix": { "rust": [ "stable", "beta", "nightly", "1.18.0" ] } }, "steps": [ { "uses": "actions/checkout@v2", "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" }, "name": "Run `cargo check`" }, { "uses": "actions-rs/cargo@v1", "with": { "command": "check", "args": "--examples" }, "name": "Check examples", "if": "matrix.rust != '1.18.0'" } ] }, "test": { "name": "Test", "runs-on": "ubuntu-latest", "strategy": { "matrix": { "rust": [ "stable", "beta", "nightly" ] } }, "steps": [ { "uses": "actions/checkout@v2", "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": "test" }, "name": "Run `cargo test`" } ] }, "lints": { "name": "Lints", "runs-on": "ubuntu-latest", "steps": [ { "uses": "actions/checkout@v2", "name": "Checkout" }, { "uses": "actions-rs/toolchain@v1", "with": { "profile": "minimal", "toolchain": "stable", "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": "-- -D warnings" }, "name": "Run `cargo clippy`" } ] }, "coverage": { "name": "Code Coverage", "runs-on": "ubuntu-latest", "steps": [ { "uses": "actions/checkout@v2", "name": "Checkout" }, { "uses": "actions-rs/toolchain@v1", "with": { "profile": "minimal", "toolchain": "nightly", "override": true }, "name": "Install Rust nightly" }, { "name": "Run cargo-tarpaulin", "uses": "actions-rs/tarpaulin@v0.1", "with": { "version": "0.12.3", "args": "--ignore-tests -- --test-threads 1" } }, { "name": "Upload to codecov.io", "uses": "codecov/codecov-action@v1" }, { "name": "Archive code coverage results", "uses": "actions/upload-artifact@v1", "with": { "name": "code-coverage-report", "path": "cobertura.xml" } } ] } } }