name: Rust Build and Clippy Check on: pull_request: branches: - main push: branches: - main env: SCCACHE_GHA_ENABLED: true RUSTC_WRAPPER: sccache SCCACHE_CACHE_SIZE: "1G" jobs: build_all: name: Rust project runs-on: ubuntu-22.04 steps: - name: Install Linux Packages run: | sudo apt-get update -y sudo apt-get install libssl-dev openssl -y - uses: actions/checkout@v4 # The toolchain action should definitely be run before the cache action - uses: actions-rust-lang/setup-rust-toolchain@v1 with: # use toolchain version from rust-toolchain.toml components: rustfmt, clippy cache: true # avoid the default "-D warnings" which thrashes cache rustflags: "" - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.3 # https://github.com/actions/cache/blob/main/examples.md#rust---cargo # https://blog.arriven.wtf/posts/rust-ci-cache/ - uses: Swatinem/rust-cache@v2 with: # will be covered by sscache cache-targets: false key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Early Build run: | cargo build --locked --workspace --tests - name: Run fmt+clippy run: | cargo fmt --all --check cargo clippy --locked --workspace --all-targets