#!/bin/bash # A script to run a simplified version of the checks done by CI. # # Usage: # bash scripts/ci.sh # # Note: This script requires nightly Rust, rustfmt, clippy, and cargo-expand set -euo pipefail if [[ "${1:-none}" == "+"* ]]; then toolchain="${1}" else cargo +nightly -V >/dev/null || exit 1 toolchain="+nightly" fi if [[ "${toolchain:-+nightly}" != "+nightly"* ]] || ! rustfmt -V &>/dev/null || ! cargo clippy -V &>/dev/null || ! cargo expand -V &>/dev/null; then echo "error: ci.sh requires nightly Rust, rustfmt, clippy, and cargo-expand" exit 1 fi echo "Running 'cargo ${toolchain} fmt --all'" cargo "${toolchain}" fmt --all echo "Running 'cargo ${toolchain} clippy --all --all-targets'" cargo "${toolchain}" clippy --all --all-features --all-targets -Zunstable-options echo "Running 'cargo ${toolchain} test --all --exclude expandtest'" TRYBUILD=overwrite cargo "${toolchain}" test --all --all-features --exclude expandtest echo "Running 'bash scripts/expandtest.sh ${toolchain}'" "$(cd "$(dirname "${0}")" && pwd)"/expandtest.sh "${toolchain}" echo "Running 'cargo ${toolchain} doc --no-deps --all'" cargo "${toolchain}" doc --no-deps --all --all-features