From 032158179599b3ef39ceec73fa1dd39e68653c05 Mon Sep 17 00:00:00 2001 From: Carter Francis Date: Sat, 8 Aug 2026 07:49:52 -0500 Subject: [PATCH] ci: cache the pooch example datasets on the e2e jobs Three slow-slice specs load pyxem's sped_ag; every uncached runner re-downloaded it from Zenodo per job, and a stalled download eats the spec's whole budget (the likely mechanism behind the sped_ag_grid job that hung to the kill with no diagnostics). actions/cache on ~/.cache/ pyxem, lock-keyed with a restore-keys fallback -- the pattern the hyperspy org's shared pooch-cache workflows use; pooch checksums verify integrity on every load either way. --- .github/workflows/build.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6536278b..73ee95ea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -308,6 +308,20 @@ jobs: working-directory: electron run: npx playwright install --with-deps chromium + # Example datasets (pyxem's sped_ag) download through pooch with a + # checksum on first use; three slow-slice specs load it, so uncached + # runners re-fetch it from Zenodo every run — slow, and a stalled + # download eats the spec's whole budget (the hyperspy orgs cache the + # same way, e.g. hyperspy/.github's pooch-cache workflows). Keyed on + # the lock so a pyxem bump re-saves; restore-keys keeps it warm across + # unrelated dependency changes (pooch re-verifies checksums on load). + - name: Cache example datasets (pooch) + uses: actions/cache@v4 + with: + path: ~/.cache/pyxem + key: pooch-pyxem-${{ hashFiles('uv.lock') }} + restore-keys: pooch-pyxem- + - name: Run Electron e2e working-directory: electron env: