ci: fix vcpkg tools cache key collision between windows matrix jobs
What changed, and why it matters
This is a routine fix to Bitcoin Core's GitHub Actions CI workflow. Two Windows test jobs were accidentally trying to save their build-tool cache under the same name, which could cause a harmless cache-save conflict. The patch makes only one of the two jobs save the cache. It does not change Bitcoin Core software, wallet code, networking, or cryptography, and has no security relevance for users.
No security action needed. Treat as a normal CI maintenance commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit modifies .github/workflows/ci.yml. Two matrix jobs (‘standard’ and ‘fuzz’) both run under the GitHub Actions job ID ‘windows-native-dll’, so both attempted to save a vcpkg tools cache with the identical key ${{ github.job }}-vcpkg-tools-${{ github.run_id }}. Because the tools are identical, the fix restricts the cache-save step to the matrix.job-type == ‘standard’ job only. This is a CI reliability/efficiency change, not a product security patch.
Changed components
.github/workflows/ci.ymlGitHub Actions CI pipeline for Windows native DLL buildsInspect captured patch +2 / −1
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ebd0986b..0c2e52d2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -296,7 +296,8 @@ jobs:
- name: Save vcpkg tools cache
uses: actions/cache/save@v5
- if: github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.vcpkg-tools-cache.outputs.cache-hit != 'true'
+ # Only save cache from one job as they share tools. If the matrix is expanded to jobs with unique tools, this may need amending.
+ if: github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.vcpkg-tools-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
with:
path: C:/vcpkg/downloads/tools
key: ${{ github.job }}-vcpkg-tools-${{ github.run_id }}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.