From 6e2e369460be62bd087f1a1f804ad4cf4d2c9230 Mon Sep 17 00:00:00 2001 From: Jacob Magar Date: Fri, 7 Aug 2026 02:41:18 -0400 Subject: [PATCH] fix(kache): stop hardcoding the endpoint and align the pin to 0.13.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two problems in the three reusable workflows that install kache on hosted runners. Both propagate to every consuming repo, which is what makes them worth fixing here rather than downstream. 1. `s3-endpoint: https://s3.tootie.tv` was hardcoded in four places. This repository is public, so that publishes an internal endpoint. Every first-party repo was scrubbed of the same string today (cortex#183, yarr#123, axon#533, labby#377); this is the upstream copy they all call. Now reads ${{ vars.KACHE_S3_ENDPOINT }}, resolved from org variables the same way the per-repo setup-rust-kache action does. 2. `kache-action` was pinned to 0.12.0 while the entire fleet runs 0.13.0 (verified: ci-runner-rust-* report `kache 0.13.0`, and soma/cortex/yarr/ axon all set KACHE_VERSION 0.13.0 on main; v0.13.0 released 2026-08-04). Hosted jobs were therefore writing into the shared s3://kache/rust bucket with a different version than the self-hosted fleet reads it with. The per-repo action carries an explicit warning about this: "The private fleet and hosted CI share the 0.13.0 S3 object layout and daemon protocol. Floating this version could split cache epochs or layouts without an obvious workflow failure." A version mismatch here fails quietly — kache is fail-open, so the symptom is a slow green build or an arbitrary crate failing to compile, not an error that names the cause. --- .github/workflows/hosted-incus-image.yml | 4 ++-- .github/workflows/hosted-kache-canary.yml | 8 ++++---- .github/workflows/hosted-rust-release.yml | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/hosted-incus-image.yml b/.github/workflows/hosted-incus-image.yml index 695d6fa..337bb1e 100644 --- a/.github/workflows/hosted-incus-image.yml +++ b/.github/workflows/hosted-incus-image.yml @@ -69,11 +69,11 @@ jobs: - uses: kunobi-ninja/kache-action@a257c055543c2840700a9bbca8f9c3094a421b1b if: inputs.enable-kache with: - version: "0.12.0" + version: "0.13.0" s3-bucket: kache s3-region: us-east-1 s3-prefix: rust - s3-endpoint: https://s3.tootie.tv + s3-endpoint: ${{ vars.KACHE_S3_ENDPOINT }} s3-access-key-id: ${{ secrets.KACHE_S3_ACCESS_KEY }} s3-secret-access-key: ${{ secrets.KACHE_S3_SECRET_KEY }} manifest-key: ${{ inputs.kache-manifest-key }} diff --git a/.github/workflows/hosted-kache-canary.yml b/.github/workflows/hosted-kache-canary.yml index 990356c..63704aa 100644 --- a/.github/workflows/hosted-kache-canary.yml +++ b/.github/workflows/hosted-kache-canary.yml @@ -36,11 +36,11 @@ jobs: toolchain: "1.97.1" - uses: kunobi-ninja/kache-action@a257c055543c2840700a9bbca8f9c3094a421b1b with: - version: "0.12.0" + version: "0.13.0" s3-bucket: kache s3-region: us-east-1 s3-prefix: canary - s3-endpoint: https://s3.tootie.tv + s3-endpoint: ${{ vars.KACHE_S3_ENDPOINT }} s3-access-key-id: ${{ secrets.KACHE_S3_ACCESS_KEY }} s3-secret-access-key: ${{ secrets.KACHE_S3_SECRET_KEY }} cache-executables: "true" @@ -73,11 +73,11 @@ jobs: toolchain: "1.97.1" - uses: kunobi-ninja/kache-action@a257c055543c2840700a9bbca8f9c3094a421b1b with: - version: "0.12.0" + version: "0.13.0" s3-bucket: kache s3-region: us-east-1 s3-prefix: canary - s3-endpoint: https://s3.tootie.tv + s3-endpoint: ${{ vars.KACHE_S3_ENDPOINT }} s3-access-key-id: ${{ secrets.KACHE_S3_ACCESS_KEY }} s3-secret-access-key: ${{ secrets.KACHE_S3_SECRET_KEY }} cache-executables: "true" diff --git a/.github/workflows/hosted-rust-release.yml b/.github/workflows/hosted-rust-release.yml index 2925fb4..c68ea42 100644 --- a/.github/workflows/hosted-rust-release.yml +++ b/.github/workflows/hosted-rust-release.yml @@ -57,11 +57,11 @@ jobs: toolchain: ${{ inputs.toolchain }} - uses: kunobi-ninja/kache-action@a257c055543c2840700a9bbca8f9c3094a421b1b with: - version: "0.12.0" + version: "0.13.0" s3-bucket: kache s3-region: us-east-1 s3-prefix: rust - s3-endpoint: https://s3.tootie.tv + s3-endpoint: ${{ vars.KACHE_S3_ENDPOINT }} s3-access-key-id: ${{ secrets.KACHE_S3_ACCESS_KEY }} s3-secret-access-key: ${{ secrets.KACHE_S3_SECRET_KEY }} manifest-key: release-${{ runner.os }}-x64