Modernize CI somewhat #265
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
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
env: | |
RUST_BACKTRACE: 1 | |
jobs: | |
test: | |
name: Test Rust ${{ matrix.rust }} on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { rust: 1.46.0, os: ubuntu-latest } | |
- { rust: stable, os: ubuntu-latest } | |
- { rust: stable, os: macos-latest } | |
- { rust: stable, os: windows-latest } | |
- { rust: stable-i686-msvc, os: windows-latest } | |
- { rust: beta, os: ubuntu-latest } | |
- { rust: nightly, os: ubuntu-latest } | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: hecrj/setup-rust-action@v2 | |
with: | |
rust-version: ${{ matrix.rust }} | |
- run: cargo test --verbose --workspace --all-features | |
- run: cargo test --verbose --workspace --no-default-features | |
- run: cargo test --verbose --workspace --all-features | |
env: | |
RUSTFLAGS: "--cfg force_disable_atomic64" | |
RUSTDOCFLAGS: "--cfg force_disable_atomic64" | |
cross-test: | |
name: Test on ${{ matrix.target }} (using cross) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- i686-unknown-linux-gnu | |
- armv7-linux-androideabi | |
- aarch64-unknown-linux-gnu | |
- powerpc-unknown-linux-gnu | |
- powerpc64-unknown-linux-gnu | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: hecrj/setup-rust-action@v2 | |
- run: cargo install cross | |
- run: cross test --verbose --target=${{ matrix.target }} --no-default-features | |
- run: cross test --verbose --target=${{ matrix.target }} --all-features | |
check: | |
name: Check warnings | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -Dwarnings | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: hecrj/setup-rust-action@v2 | |
- run: cargo check --workspace --all-targets --verbose | |
- run: cargo check --workspace --all-targets --verbose --no-default-features | |
rustfmt: | |
name: Verify code formatting | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: hecrj/setup-rust-action@v2 | |
with: | |
components: rustfmt | |
- run: cargo fmt --all -- --check | |
codecov-tarpaulin: | |
name: coverage | |
runs-on: ubuntu-latest | |
container: | |
image: xd009642/tarpaulin:develop-nightly | |
options: --security-opt seccomp=unconfined | |
steps: | |
- uses: actions/checkout@v3 | |
- run: cargo +nightly tarpaulin --verbose --doc --all-features --workspace --timeout 120 --out xml | |
- uses: codecov/codecov-action@v4 | |
with: { fail_ci_if_error: true } |