Release v0.12.0 #151
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: Rust | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
lint: | |
name: ${{matrix.command}} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {command: fmt, rust: nightly} | |
- {command: clippy, rust: nightly} | |
- {command: doc, rust: nightly} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust (${{matrix.rust}}) | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: '${{matrix.rust}}' | |
components: 'rustfmt, clippy' | |
- name: Run cargo ${{matrix.command}} | |
uses: actions-rs/cargo@v1 | |
with: | |
command: ${{matrix.command}} | |
args: "${{matrix.command == 'fmt' && '--all -- --check' || matrix.command == 'doc' && '--workspace' || '--workspace -- -D warnings'}}" | |
test: | |
name: Test | |
runs-on: ${{matrix.platform}} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {platform: ubuntu-latest, rust: nightly} | |
- {platform: ubuntu-latest, rust: stable} | |
- {platform: windows-latest, rust: nightly} | |
- {platform: macos-latest, rust: nightly} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust (${{matrix.rust}}) | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: '${{matrix.rust}}' | |
- name: Build and test all crates | |
run: cargo test -vv --workspace ${{matrix.rust == 'nightly' && '--features unstable' || '' }} | |
- name: Build and test all docs | |
run: cargo test -vv --workspace --doc ${{matrix.rust == 'nightly' && '--features unstable' || '' }} | |
- name: Build examples | |
run: cargo b --examples --verbose ${{matrix.rust == 'nightly' && '--features unstable' || '' }} | |
bench: | |
name: Benchmark | |
runs-on: ubuntu-${{matrix.ubuntu}} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {ubuntu: latest, rust: nightly} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust (${{matrix.rust}}) | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: '${{matrix.rust}}' | |
- name: Build and bench | |
run: cargo bench -vv --workspace --features unstable | |
audit: | |
name: Audit | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: nightly | |
- name: Install cargo audit | |
run: cargo install cargo-audit | |
- name: Run cargo audit | |
run: cargo audit | |
codecov: | |
name: Code coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: nightly | |
- name: Install tarpaulin | |
run: cargo install cargo-tarpaulin | |
- name: Run code coverage | |
run: cargo tarpaulin --verbose --out xml --ignore-tests | |
- name: Upload code coverage | |
run: bash <(curl -s https://codecov.io/bash) | |
addr_san: | |
name: Address sanitizer | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: nightly | |
- name: Run test with sanitizer | |
env: | |
RUSTFLAGS: "-Z sanitizer=address" | |
RUSTDOCFLAGS: "-Z sanitizer=address" | |
run: cargo test --target x86_64-unknown-linux-gnu --workspace |