196 lines
4.5 KiB
YAML
196 lines
4.5 KiB
YAML
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|