From c02116cec2f4bc779301f851a99f10e49e37e8e1 Mon Sep 17 00:00:00 2001 From: Christian Date: Thu, 29 Jan 2026 08:14:35 -0600 Subject: [PATCH 1/2] fix rust build caching issues --- .github/workflows/format.yml | 16 ++-------------- .github/workflows/test.yml | 33 +++++++++++++-------------------- 2 files changed, 15 insertions(+), 34 deletions(-) diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index f45dd62c..8368605a 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -13,17 +13,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Cache cargo dependencies - uses: actions/cache@v4 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Retrieve Rust version id: rust-version run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT @@ -32,11 +21,10 @@ jobs: - name: Set up rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: - components: "clippy, rustfmt" toolchain: ${{ steps.rust-version.outputs.rust-version }} + components: "clippy, rustfmt" + cache-shared-key: cargo-${{ runner.os }} - - name: Add wasm32-wasi target - run: rustup target add wasm32-wasip1 - name: Run cargo fmt uses: actions-rust-lang/rustfmt@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b3f34c22..58af9f7f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,31 +13,24 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Cache Cargo dependencies - uses: actions/cache@v4 + - name: Set up Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + cache-shared-key: cargo-${{ runner.os }} - - name: Retrieve Rust version - id: rust-version - run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT - shell: bash + - name: Get Viceroy cache key + id: viceroy-rev + run: echo "sha=$(git ls-remote https://github.com/fastly/Viceroy HEAD | cut -f1)" >> $GITHUB_OUTPUT - - name: Set up Rust tool chain - uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Cache Viceroy binary + id: cache-viceroy + uses: actions/cache@v4 with: - toolchain: ${{ steps.rust-version.outputs.rust-version }} - - - name: Add wasm32-wasi target - run: rustup target add wasm32-wasip1 + path: ~/.cargo/bin/viceroy + key: viceroy-${{ runner.os }}-${{ steps.viceroy-rev.outputs.sha }} - - name: Setup Viceroy (from main since 0.14.3 is broken) + - name: Install Viceroy (from main since 0.14.3 is broken) + if: steps.cache-viceroy.outputs.cache-hit != 'true' run: cargo install --git https://github.com/fastly/Viceroy viceroy - name: Run tests From 12380f663d3e9d1a6b45f0dfc3a5f5c3518893ae Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 4 Feb 2026 15:41:32 -0600 Subject: [PATCH 2/2] use .tool-versions and awk to get pinned rust version in workflows --- .github/workflows/test.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 58af9f7f..7258dac0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,9 +13,15 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Retrieve Rust version + id: rust-version + run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT + shell: bash + - name: Set up Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: + toolchain: ${{ steps.rust-version.outputs.rust-version }} cache-shared-key: cargo-${{ runner.os }} - name: Get Viceroy cache key