From f8c110562ad95af6d64e912be5be96ca9a8af957 Mon Sep 17 00:00:00 2001 From: Dorian Scheidt Date: Wed, 12 Aug 2026 14:06:36 -0500 Subject: [PATCH] RUE-1476: cache the dotslash buck2 download in the jobs that missed it Nine CI jobs restore the dotslash-downloaded buck2 binary from the actions cache; fmt and remote-execution did not, and neither did cache-probe's probe job while its sibling rue-program-warm did. Those jobs re-fetch buck2 from the GitHub releases CDN on every run, so a transient CDN failure fails them before any Rue code is exercised -- which is what evicted a PR from the merge queue today, where a flake costs a whole queue cycle rather than a re-run. The step is the one clippy already carries, unchanged. All three jobs are single-platform ubuntu, so they take the existing dotslash-linux-x64 key rather than the matrix-keyed form the multi-OS jobs use. --- .github/workflows/cache-probe.yml | 11 +++++++++++ .github/workflows/ci.yml | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/.github/workflows/cache-probe.yml b/.github/workflows/cache-probe.yml index 40196616f..49b45bc60 100644 --- a/.github/workflows/cache-probe.yml +++ b/.github/workflows/cache-probe.yml @@ -43,6 +43,17 @@ jobs: - name: Install dotslash uses: facebook/install-dotslash@v2 + # The buck2 binary itself, not build artifacts: this job deliberately + # clears buck-out and rebuilds cold, but re-downloading buck2 from the + # releases CDN is a network dependency the probe does not exist to test. + - name: Cache dotslash artifacts + uses: actions/cache@v5 + with: + path: ~/.cache/dotslash + key: dotslash-linux-x64-${{ hashFiles('buck2') }} + restore-keys: | + dotslash-linux-x64- + - name: Guard — secret present env: KEY: ${{ secrets.BUILDBUDDY_API_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2134d63ac..7dc2e6bfd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,18 @@ jobs: - name: Install dotslash uses: facebook/install-dotslash@v2 # pinned: the moving `latest` branch broke macOS runners (sha256sum flags) on 2026-06-18 + # Cache the dotslash-downloaded buck2 binary (see the `test` job for the + # rationale on which paths are worth caching). + - name: Cache dotslash artifacts + uses: actions/cache@v5 + with: + path: | + ~/.cache/dotslash + ~/Library/Caches/dotslash + key: dotslash-linux-x64-${{ hashFiles('buck2') }} + restore-keys: | + dotslash-linux-x64- + - name: Check formatting # Every crate emits its own `-fmt-check` test from the # rue_crate/rue_binary macros (RUE-1153), so coverage follows the @@ -148,6 +160,18 @@ jobs: - name: Install dotslash uses: facebook/install-dotslash@v2 + # Cache the dotslash-downloaded buck2 binary (see the `test` job for the + # rationale on which paths are worth caching). + - name: Cache dotslash artifacts + uses: actions/cache@v5 + with: + path: | + ~/.cache/dotslash + ~/Library/Caches/dotslash + key: dotslash-linux-x64-${{ hashFiles('buck2') }} + restore-keys: | + dotslash-linux-x64- + - name: Require and provision remote execution env: BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }}