184 lines
4.4 KiB
YAML
184 lines
4.4 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/install@v0.1",
|
|
"with": {
|
|
"crate": "cargo-all-features",
|
|
"version": "1.6.0"
|
|
},
|
|
"name": "Install cargo-all-features"
|
|
},
|
|
{
|
|
"run": "cargo test-all-features",
|
|
"name": "Run `cargo test` on all features"
|
|
}
|
|
]
|
|
},
|
|
"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": "--all"
|
|
}
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|