Merge pull request #463 from kdash-rs/deepu105-patch-1 #902
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
pull_request: | |
push: | |
branches: [main] | |
name: Continuous Integration | |
jobs: | |
# Workaround for making Github Actions skip based on commit message `[skip ci]` | |
# Source https://gist.github.com/ybiquitous/c80f15c18319c63cae8447a3be341267 | |
prepare: | |
runs-on: ubuntu-latest | |
if: | | |
!contains(format('{0} {1} {2}', github.event.head_commit.message, github.event.pull_request.title, github.event.pull_request.body), '[skip ci]') | |
steps: | |
- run: | | |
cat <<'MESSAGE' | |
github.event_name: ${{ toJson(github.event_name) }} | |
github.event: | |
${{ toJson(github.event) }} | |
MESSAGE | |
check: | |
name: Check | |
runs-on: ubuntu-latest | |
needs: prepare | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v3 | |
name: Cache Cargo registry | |
with: | |
path: ~/.cargo/registry | |
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('Cargo.lock') }} | |
- uses: dtolnay/rust-toolchain@stable | |
name: Set Rust toolchain | |
- run: cargo check --all --all-targets --workspace | |
test: | |
name: Test Suite | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "macOS-latest" | |
- "windows-latest" | |
- "ubuntu-latest" | |
rust: [stable, nightly] | |
needs: prepare | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v3 | |
name: Cache Cargo registry | |
with: | |
path: ~/.cargo/registry | |
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('Cargo.lock') }} | |
- uses: dtolnay/rust-toolchain@master | |
name: Set Rust toolchain | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: cargo test nightly | |
run: cargo test | |
if: matrix.rust == 'nightly' | |
env: | |
CARGO_INCREMENTAL: "0" | |
RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests" | |
RUSTDOCFLAGS: "-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests" | |
- name: cargo test stable | |
run: cargo test --all --all-features --all-targets --workspace | |
if: matrix.rust == 'stable' | |
- id: coverage | |
if: matrix.os == 'ubuntu-latest' && matrix.rust == 'nightly' | |
uses: actions-rs/[email protected] | |
with: | |
config: .github/grcov.yml | |
- name: Push grcov results to Coveralls | |
if: matrix.os == 'ubuntu-latest' && matrix.rust == 'nightly' | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ${{ steps.coverage.outputs.report }} | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
needs: prepare | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v3 | |
name: Cache Cargo registry | |
with: | |
path: ~/.cargo/registry | |
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('Cargo.lock') }} | |
- uses: dtolnay/rust-toolchain@stable | |
name: Set Rust toolchain | |
with: | |
components: rustfmt | |
- run: cargo fmt --all -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
needs: prepare | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v3 | |
name: Cache Cargo registry | |
with: | |
path: ~/.cargo/registry | |
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('Cargo.lock') }} | |
- uses: dtolnay/rust-toolchain@stable | |
name: Set Rust toolchain | |
with: | |
components: clippy | |
- run: cargo clippy --all --all-features --all-targets --workspace -- -D warnings | |
env: | |
CARGO_INCREMENTAL: "0" |