From 4c0f070d27ae4ba985d25cf6ce9e0ae97b9a34b4 Mon Sep 17 00:00:00 2001 From: AviiNL Date: Wed, 8 Mar 2023 17:51:47 +0100 Subject: [PATCH] Add caching layer to CI (#277) Added a caching layer to the CI This creates a cache on first run (should exist because of this pr now) The hash is calculated from the Cargo.toml files (recursively if i've done it correctly) So whenever a Cargo.toml file changes, it invalidates the cache. Local crates are _not_ cached, so they get recompiled regardless, but it already shaves off like half the total time from the action runners. --- .github/workflows/ci.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e9363b..3ae03fb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,20 @@ jobs: with: components: clippy, rustfmt - run: cp crates/playground/src/playground.template.rs crates/playground/src/playground.rs + - name: Set up cargo cache + uses: actions/cache@v3 + continue-on-error: false + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.toml') }} + restore-keys: | + ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.toml') }} + ${{ runner.os }}-cargo-target - name: Validate formatting run: cargo fmt --all -- --check - name: Validate documentation