Merge pull request #37 from alexander-buerger-met-no/use-stable-rust #24
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: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
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: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: '${{matrix.rust}}' | |
override: true | |
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: 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: actions-rs/toolchain@v1 | |
with: | |
toolchain: '${{matrix.rust}}' | |
profile: minimal | |
override: true | |
- name: Build and test all crates | |
run: cargo test -vv --workspace | |
- name: Build examples | |
run: cargo b --examples --verbose | |
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: actions-rs/toolchain@v1 | |
with: | |
toolchain: '${{matrix.rust}}' | |
profile: minimal | |
override: true | |
- name: Build and bench | |
run: cargo bench -vv --workspace | |
audit: | |
name: Audit | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
override: true | |
- 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: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
override: true | |
- 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: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
override: true | |
- name: Run test with sanitizer | |
env: | |
RUSTFLAGS: "-Z sanitizer=address" | |
RUSTDOCFLAGS: "-Z sanitizer=address" | |
run: cargo test --target x86_64-unknown-linux-gnu --workspace |