version: 2
jobs:
build:
docker:
- image: circleci/rust:latest
steps:
- checkout
- restore_cache:
key: project-cache
- run:
name: Check formatting
command: |
rustup component add rustfmt-preview
rustfmt --version
cargo fmt -- --check --color=auto
- run:
name: Check Linting
command: |
rustup component add clippy
cargo clippy
- run:
name: Stable Build
command: |
rustup toolchain install stable
rustup run stable rustc --version --verbose
rustup run stable cargo --version --verbose
rustup run stable cargo build
- run:
name: Test
command: rustup run stable cargo test
- save_cache:
key: project-cache
paths:
- "~/.cargo"
- "./target"