174 lines
3.8 KiB
YAML
174 lines
3.8 KiB
YAML
{
|
|
"name": "CI",
|
|
"on": {
|
|
"push": {
|
|
"branches": [
|
|
"master"
|
|
]
|
|
},
|
|
"pull_request": {
|
|
"branches": [
|
|
"master"
|
|
]
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|