Skip to content

Serialiser improvements #147

Serialiser improvements

Serialiser improvements #147

Workflow file for this run

---
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