diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 1c990d5..585d8b4 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -80,7 +80,7 @@ jobs: uses: actions/cache@v4 with: path: .deps - key: obs-deps-${{ runner.os }}-${{ hashFiles('cmake/macos/buildspec.cmake', 'cmake/common/buildspec_common.cmake', 'buildspec.json') }} + key: obs-deps-v2-${{ runner.os }}-${{ hashFiles('cmake/macos/buildspec.cmake', 'cmake/common/buildspec_common.cmake', 'buildspec.json') }} - name: Configure, build, test, verify run: .gitea/scripts/macos-build.sh @@ -147,10 +147,22 @@ jobs: # needed: cmake/windows/buildspec.cmake's own download logic is # already idempotent, it just never gets the chance because .deps/ # lives inside the checkout and is wiped by every fresh clone. + # + # The `v2` in the key: actions/cache never overwrites an existing + # key -- once a key has a saved entry, every later job's save step is + # skipped as a no-op, cache hit or not. The very first job ever + # to populate this cache did so BEFORE the "Drop non-relocatable OBS + # build tree" step below existed, so its save included the bad + # build_x86 directory -- and because saves under an existing key are + # permanently skipped, every run after that kept restoring that same + # bad entry forever, not "one more transitional run" as it looked at + # the time. Bumping the key is what actually forces a fresh save; + # bump it again (v3, ...) if this cache is ever found to be stale in + # a way a workflow change alone can't fix. uses: actions/cache@v4 with: path: .deps - key: obs-deps-${{ runner.os }}-${{ hashFiles('cmake/windows/buildspec.cmake', 'cmake/common/buildspec_common.cmake', 'buildspec.json') }} + key: obs-deps-v2-${{ runner.os }}-${{ hashFiles('cmake/windows/buildspec.cmake', 'cmake/common/buildspec_common.cmake', 'buildspec.json') }} - name: Configure, build, test, verify # Windows PowerShell (powershell.exe), not PowerShell Core (pwsh) --