bincode/.github/workflows/rust.yml

179 lines
4.2 KiB
YAML

{
"name": "CI",
"on": {
"push": {
"branches": [
"trunk",
"feature/deserde*", # Temporary while we work on deserde
"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.55.0" TODO: Pick latest stable version when we release 2.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.41.0'"
# }
]
},
"test": {
"name": "Test",
"runs-on": "ubuntu-latest",
"strategy": {
"matrix": {
"rust": [
"stable",
"beta",
"nightly"
# "1.55.0" TODO: Pick latest stable version when we release 2.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": "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.18.2",
"args": "--exclude-files derive/"
}
},
{
"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"
}
}
]
}
}
}