Merge bitcoin/bitcoin#34080: ci: Pin native tests on cross-builds to same commit

faa8ee62f5 ci: Pin native tests on cross-builds to same commit (MarcoFalke)

Pull request description:

  After commit 13809b867a, the native tests may check out a different commit than the cross-build task that produced the artefacts they run on.

  Obviously, this may lead to test failures.

  Fix it, by first determining a fixed commit, to be used for both the build and the native tests.

  An alternative could be to fully or partially revert 13809b867a, but that comes again with the downsides making it harder to detect silent merge conflicts by re-running CI, or clearing unrelated and fixed intermittent test issues by re-running CI. Then, the only alternative would be to close and re-open the pull request.

ACKs for top commit:
  janb84:
    ACK faa8ee62f5
  ryanofsky:
    Code review ACK faa8ee62f5. Thanks for the naming & display updates since last review!
  hodlinator:
    crACK faa8ee62f5

Tree-SHA512: 01391cdfad34e3f2f5b3a6247b1aeb412d023e368bc17572aa66324688439786e79e263288276053ffcfa8521635b07339dbf087b8a30d6670373556a77c22ee
This commit is contained in:
merge-script committed 2025-12-17 15:15:58 +00:00
commit e3a4cb127f
1 file changed
+25 -5
+25 -5
View File
@@ -30,7 +30,7 @@ defaults:
jobs: jobs:
runners: runners:
name: 'determine runners' name: '[meta] determine runners'
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
provider: ${{ steps.runners.outputs.provider }} provider: ${{ steps.runners.outputs.provider }}
@@ -343,9 +343,23 @@ jobs:
run: | run: |
py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora" py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora"
record-frozen-commit:
# Record frozen commit, so that the native tests on cross-builds can run on
# the exact same commit id of the build.
name: '[meta] record frozen commit'
runs-on: ubuntu-latest
outputs:
commit: ${{ steps.record-commit.outputs.commit }}
steps:
- *ANNOTATION_PR_NUMBER
- *CHECKOUT
- name: Record commit
id: record-commit
run: echo "commit=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
windows-cross: windows-cross:
name: 'Windows-cross to x86_64, ${{ matrix.crt }}' name: 'Windows-cross to x86_64, ${{ matrix.crt }}'
needs: runners needs: [runners, record-frozen-commit]
runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }} runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }} if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
@@ -368,7 +382,10 @@ jobs:
steps: steps:
- *ANNOTATION_PR_NUMBER - *ANNOTATION_PR_NUMBER
- *CHECKOUT - name: Checkout
uses: actions/checkout@v5
with:
ref: ${{ needs.record-frozen-commit.outputs.commit }}
- name: Configure environment - name: Configure environment
uses: ./.github/actions/configure-environment uses: ./.github/actions/configure-environment
@@ -402,7 +419,7 @@ jobs:
windows-native-test: windows-native-test:
name: 'Windows, ${{ matrix.crt }}, test cross-built' name: 'Windows, ${{ matrix.crt }}, test cross-built'
runs-on: windows-2022 runs-on: windows-2022
needs: windows-cross needs: [windows-cross, record-frozen-commit]
strategy: strategy:
fail-fast: false fail-fast: false
@@ -421,7 +438,10 @@ jobs:
steps: steps:
- *ANNOTATION_PR_NUMBER - *ANNOTATION_PR_NUMBER
- *CHECKOUT - name: Checkout
uses: actions/checkout@v5
with:
ref: ${{ needs.record-frozen-commit.outputs.commit }}
- name: Download built executables - name: Download built executables
uses: actions/download-artifact@v5 uses: actions/download-artifact@v5