You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.8 KiB
56 lines
1.8 KiB
version: 2
|
|
|
|
jobs:
|
|
build:
|
|
docker:
|
|
- image: circleci/rust:latest
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Setup Rust
|
|
command: |
|
|
rustup toolchain uninstall nightly
|
|
rustup toolchain install nightly -c miri rust-src rustfmt
|
|
- run:
|
|
name: Version information
|
|
command: |
|
|
rustc --version
|
|
cargo --version
|
|
rustc +nightly --version
|
|
cargo +nightly --version
|
|
rustup --version
|
|
- run:
|
|
name: Calculate dependencies
|
|
command: cargo generate-lockfile
|
|
- restore_cache:
|
|
keys:
|
|
- cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|
|
- run:
|
|
name: Check Formatting
|
|
command: |
|
|
rustfmt --version
|
|
cargo fmt --all -- --check --color=auto
|
|
- run:
|
|
name: Build all targets
|
|
command: cargo build --all --all-targets
|
|
- run:
|
|
name: Run all tests
|
|
command: cargo test --all
|
|
- run:
|
|
name: Run all tests under miri
|
|
command: |
|
|
cargo +nightly miri test
|
|
- run:
|
|
name: Run all tests under sanitizers
|
|
command: |
|
|
RUSTFLAGS="-Z sanitizer=address" cargo +nightly -Z build-std test --target x86_64-unknown-linux-gnu
|
|
RUSTFLAGS="-Z sanitizer=leak" cargo +nightly test -Z build-std --target x86_64-unknown-linux-gnu
|
|
RUSTFLAGS="-Z sanitizer=memory" cargo +nightly test -Z build-std --target x86_64-unknown-linux-gnu
|
|
- save_cache:
|
|
paths:
|
|
- /usr/local/cargo/registry
|
|
- target/debug/.fingerprint
|
|
- target/debug/build
|
|
- target/debug/deps
|
|
key: cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|