What changed, and why it matters
This commit is a routine CI infrastructure change. It tells Bitcoin Core's GitHub Actions build system to use a faster local cache service (called 'Warp') for Docker image layers, instead of GitHub's slower default cache. There is no change to Bitcoin's actual code, consensus rules, wallet handling, or network behavior. It is not a security fix and does not introduce an obvious security issue based on the supplied materials.
No security action required. Reviewers may optionally confirm that the Warp cache proxy at 127.0.0.1:49160 is only exposed on CI runners and that cache contents are appropriately scoped, but this is outside the supplied diff evidence.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch modifies .github/actions/configure-docker/action.yml and .github/workflows/ci.yml. It adds an optional ‘provider’ input defaulting to ‘gha’ and, when provider is ‘warp’, configures Docker Buildx with network=host and points BuildKit’s gha cache backend to http://127.0.0.1:49160/ via cache-from/cache-to options. This is purely a CI performance optimization for Docker layer caching on Warp runners. No application code, cryptographic logic, or network protocol handling is changed.
Changed components
GitHub Actions CI workflow.github/actions/configure-docker actionInspect captured patch +26 / −2
diff --git a/.github/actions/configure-docker/action.yml b/.github/actions/configure-docker/action.yml
index 6f89dc8b..074b47ce 100644
--- a/.github/actions/configure-docker/action.yml
+++ b/.github/actions/configure-docker/action.yml
@@ -1,9 +1,22 @@
name: 'Configure Docker'
description: 'Set up Docker build driver and configure build cache args'
+inputs:
+ provider:
+ description: 'The cache provider to use'
+ required: false
+ default: 'gha'
runs:
using: 'composite'
steps:
+ - name: Set up Docker Buildx for Warp cache
+ if: ${{ inputs.provider == 'warp' }}
+ uses: docker/setup-buildx-action@v4
+ with:
+ driver-opts: |
+ network=host
+
- name: Set up Docker Buildx
+ if: ${{ inputs.provider != 'warp' }}
uses: docker/setup-buildx-action@v4
# This is required when using the gha cache backend with a manual docker buildx invocation.
@@ -23,13 +36,18 @@ runs:
- name: Construct docker build cache args
shell: bash
run: |
+ cache_options="scope=${CONTAINER_NAME}"
+ if [[ "${{ inputs.provider }}" == "warp" ]]; then
+ cache_options="url=http://127.0.0.1:49160/,version=1,${cache_options}"
+ fi
+
# Configure docker build cache backend
# Always optimistically --cache‑from in case a cache blob exists
- args=(--cache-from "type=gha,scope=${CONTAINER_NAME}")
+ args=(--cache-from "type=gha,${cache_options}")
# Only add --cache-to when pushing to the default branch.
if [[ ${{ github.event_name }} == "push" && ${{ github.ref_name }} == ${{ github.event.repository.default_branch }} ]]; then
- args+=(--cache-to "type=gha,mode=max,ignore-error=true,scope=${CONTAINER_NAME}")
+ args+=(--cache-to "type=gha,mode=max,ignore-error=true,${cache_options}")
fi
# Always `--load` into docker images (needed when using the `docker-container` build driver).
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8eaa68ab..434b5e16 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -363,6 +363,8 @@ jobs:
- name: Configure Docker
uses: ./.github/actions/configure-docker
+ with:
+ provider: ${{ needs.runners.outputs.provider }}
- name: CI script
run: ./ci/test_run_all.sh
@@ -557,6 +559,8 @@ jobs:
- name: Configure Docker
uses: ./.github/actions/configure-docker
+ with:
+ provider: ${{ matrix.provider || needs.runners.outputs.provider }}
- name: Clear unnecessary files
if: ${{ needs.runners.outputs.provider == 'gha' && true || false }} # Only needed on GHA runners
@@ -600,6 +604,8 @@ jobs:
- name: Configure Docker
uses: ./.github/actions/configure-docker
+ with:
+ provider: ${{ needs.runners.outputs.provider }}
- name: CI script
run: |
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.