What changed, and why it matters
This commit adds a new automated testing job for 32-bit ARM processors in Bitcoin Core's GitHub Actions CI workflow. It does not change any wallet, networking, consensus, or node code that end users run. It only affects internal continuous integration (CI) infrastructure.
No security action required. Review as normal CI/infrastructure maintenance.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff adds a ci-matrix job to .github/workflows/ci.yml that runs the existing ./ci/test/00_setup_env_arm.sh environment script on ubuntu-24.04-arm runners. It reuses existing internal composite actions (checkout, configure-environment, restore-caches, configure-docker, save-caches) and the existing ./ci/test_run_all.sh entry point. No application source code, build scripts consumed by users, secrets, permissions, or network-facing configuration are modified.
Changed components
.github/workflows/ci.ymlInspect captured patch +43 / −0
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d9afe935..803cc2a1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -453,3 +453,46 @@ jobs:
path: ${{ env.CCACHE_DIR }}
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
key: ${{ github.job }}-ccache-${{ github.run_id }}
+
+ ci-matrix:
+ name: ${{ matrix.name }}
+ needs: runners
+ runs-on: ${{ needs.runners.outputs.use-cirrus-runners == 'true' && matrix.cirrus-runner || matrix.fallback-runner }}
+ if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
+ timeout-minutes: ${{ matrix.timeout-minutes }}
+
+ env:
+ DANGER_CI_ON_HOST_FOLDERS: 1
+ FILE_ENV: ${{ matrix.file-env }}
+
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - name: '32 bit ARM, unit tests, no functional tests'
+ cirrus-runner: 'ubuntu-24.04-arm' # Cirrus' Arm runners are Apple (with virtual Linux aarch64), which doesn't support 32-bit mode
+ fallback-runner: 'ubuntu-24.04-arm'
+ timeout-minutes: 120
+ file-env: './ci/test/00_setup_env_arm.sh'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v5
+
+ - name: Configure environment
+ uses: ./.github/actions/configure-environment
+
+ - name: Restore caches
+ id: restore-cache
+ uses: ./.github/actions/restore-caches
+
+ - name: Configure Docker
+ uses: ./.github/actions/configure-docker
+ with:
+ use-cirrus: ${{ needs.runners.outputs.use-cirrus-runners }}
+
+ - name: CI script
+ run: ./ci/test_run_all.sh
+
+ - name: Save caches
+ uses: ./.github/actions/save-caches
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.