What changed, and why it matters
This commit is a routine update to Bitcoin Core's automated testing configuration for building Windows software from a Linux machine. It swaps the virtual machine image used by the CI job and replaces several inline setup steps with reusable internal actions. There is no change to the Bitcoin software itself, no user-facing change, and no security fix or vulnerability.
No security action needed. Review as normal CI maintenance.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The change modifies .github/workflows/ci.yml for the windows-cross CI job. It adds a dependency on a runners job, changes runs-on to conditionally use a Cirrus Labs container image or ubuntu-24.04, and replaces manual environment/cache/docker setup steps with repository-local composite actions (configure-environment, restore-caches, configure-docker, save-caches). The actual build/test script (ci/test_run_all.sh) and artifact upload remain unchanged. This is purely CI infrastructure refactoring.
Changed components
.github/workflows/ci.ymlInspect captured patch +12 / −24
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7c82084b..d9afe935 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -302,7 +302,8 @@ jobs:
windows-cross:
name: 'Linux->Windows cross, no tests'
- runs-on: ubuntu-latest
+ needs: runners
+ runs-on: ${{ needs.runners.outputs.use-cirrus-runners == 'true' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md' || 'ubuntu-24.04' }}
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
env:
@@ -313,36 +314,23 @@ jobs:
- name: Checkout
uses: actions/checkout@v5
- - name: Set CI directories
- run: |
- echo "CCACHE_DIR=${{ runner.temp }}/ccache_dir" >> "$GITHUB_ENV"
- echo "BASE_ROOT_DIR=${{ runner.temp }}" >> "$GITHUB_ENV"
- echo "DEPENDS_DIR=${{ runner.temp }}/depends" >> "$GITHUB_ENV"
- echo "BASE_BUILD_DIR=${{ runner.temp }}/build" >> "$GITHUB_ENV"
+ - name: Configure environment
+ uses: ./.github/actions/configure-environment
- - name: Depends cache
- uses: actions/cache@v4
- with:
- path: ${{ env.DEPENDS_DIR }}/built
- key: ${{ github.job }}-depends-${{ hashFiles('depends/**', 'ci/test/00_setup_env_win64.sh') }}
+ - name: Restore caches
+ id: restore-cache
+ uses: ./.github/actions/restore-caches
- - name: Restore Ccache cache
- id: ccache-cache
- uses: actions/cache/restore@v4
+ - name: Configure Docker
+ uses: ./.github/actions/configure-docker
with:
- path: ${{ env.CCACHE_DIR }}
- key: ${{ github.job }}-ccache-${{ github.run_id }}
- restore-keys: ${{ github.job }}-ccache-
+ use-cirrus: ${{ needs.runners.outputs.use-cirrus-runners }}
- name: CI script
run: ./ci/test_run_all.sh
- - name: Save Ccache cache
- uses: actions/cache/save@v4
- if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
- with:
- path: ${{ env.CCACHE_DIR }}
- key: ${{ github.job }}-ccache-${{ github.run_id }}
+ - name: Save caches
+ uses: ./.github/actions/save-caches
- name: Upload built executables
uses: actions/upload-artifact@v4
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.