@@ -35,10 +35,12 @@ jobs:
3535 outputs :
3636 provider : ${{ steps.runners.outputs.provider }}
3737 steps :
38- - name : Annotate with pull request number
38+ - &ANNOTATION_PR_NUMBER
39+ name : Annotate with pull request number
3940 # This annotation is machine-readable and can be used to assign a check
40- # run to its corresponding pull request. Running in one check run is
41- # sufficient for each check suite.
41+ # run to its corresponding pull request. Running in all check runs is
42+ # required, because check re-runs discard the annotations of other
43+ # tasks in the test suite.
4244 run : |
4345 if [ "${{ github.event_name }}" = "pull_request" ]; then
4446 echo "::notice title=debug_pull_request_number_str::${{ github.event.number }}"
6365 steps :
6466 - name : Determine fetch depth
6567 run : echo "FETCH_DEPTH=$((${{ github.event.pull_request.commits }} + 2))" >> "$GITHUB_ENV"
68+ - *ANNOTATION_PR_NUMBER
6669 - uses : actions/checkout@v5
6770 with :
6871 ref : ${{ github.event.pull_request.head.sha }}
@@ -131,16 +134,18 @@ jobs:
131134 include :
132135 - job-type : standard
133136 file-env : ' ./ci/test/00_setup_env_mac_native.sh'
134- job-name : ' macOS native, no depends, sqlite only, gui '
137+ job-name : ' macOS native'
135138 - job-type : fuzz
136139 file-env : ' ./ci/test/00_setup_env_mac_native_fuzz.sh'
137140 job-name : ' macOS native, fuzz'
138141
139142 env :
140143 DANGER_RUN_CI_ON_HOST : 1
141- BASE_ROOT_DIR : ${{ github.workspace }}
144+ BASE_ROOT_DIR : ${{ github.workspace }}/repo_archive
142145
143146 steps :
147+ - *ANNOTATION_PR_NUMBER
148+
144149 - &CHECKOUT
145150 name : Checkout
146151 uses : actions/checkout@v5
@@ -176,14 +181,22 @@ jobs:
176181 key : ${{ github.job }}-${{ matrix.job-type }}-ccache-${{ github.run_id }}
177182 restore-keys : ${{ github.job }}-${{ matrix.job-type }}-ccache-
178183
184+ - name : Create git archive
185+ run : |
186+ git log -1
187+ git archive --format=tar --prefix=repo_archive/ --output=repo.tar HEAD
188+ tar -xf repo.tar
189+
179190 - name : CI script
180- run : ./ci/test_run_all.sh
191+ run : |
192+ cd repo_archive
193+ ./ci/test_run_all.sh
181194 env :
182195 FILE_ENV : ${{ matrix.file-env }}
183196
184197 - name : Save Ccache cache
185198 uses : actions/cache/save@v4
186- if : github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
199+ if : github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.ccache-cache.outputs.cache-hit != 'true'
187200 with :
188201 path : ${{ env.CCACHE_DIR }}
189202 # https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
@@ -212,6 +225,8 @@ jobs:
212225 job-name : ' Windows native, fuzz, VS 2022'
213226
214227 steps :
228+ - *ANNOTATION_PR_NUMBER
229+
215230 - *CHECKOUT
216231
217232 - &SET_UP_VS
@@ -261,7 +276,7 @@ jobs:
261276
262277 - name : Save vcpkg binary cache
263278 uses : actions/cache/save@v4
264- if : github.event_name != 'pull_request' && steps.vcpkg-binary-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
279+ if : github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.vcpkg-binary-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
265280 with :
266281 path : ~/AppData/Local/vcpkg/archives
267282 key : ${{ github.job }}-vcpkg-binary-${{ hashFiles('cmake_version', 'msbuild_version', 'toolset_version', 'vcpkg.json') }}
@@ -295,8 +310,6 @@ jobs:
295310 - name : Run test suite
296311 if : matrix.job-type == 'standard'
297312 working-directory : build
298- env :
299- QT_PLUGIN_PATH : ' ${{ github.workspace }}\build\vcpkg_installed\x64-windows\Qt6\plugins'
300313 run : |
301314 ctest --output-on-failure --stop-on-failure -j $NUMBER_OF_PROCESSORS -C Release
302315
@@ -331,7 +344,7 @@ jobs:
331344 py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora"
332345
333346 windows-cross :
334- name : ' Linux-> Windows cross, no tests '
347+ name : ' Windows- cross to x86_64 '
335348 needs : runners
336349 runs-on : ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
337350 if : ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
@@ -341,6 +354,8 @@ jobs:
341354 DANGER_CI_ON_HOST_FOLDERS : 1
342355
343356 steps :
357+ - *ANNOTATION_PR_NUMBER
358+
344359 - *CHECKOUT
345360
346361 - name : Configure environment
@@ -366,6 +381,7 @@ jobs:
366381 with :
367382 name : x86_64-w64-mingw32-executables-${{ github.run_id }}
368383 path : |
384+ ${{ env.BASE_BUILD_DIR }}/bin/*.dll
369385 ${{ env.BASE_BUILD_DIR }}/bin/*.exe
370386 ${{ env.BASE_BUILD_DIR }}/src/secp256k1/bin/*.exe
371387 ${{ env.BASE_BUILD_DIR }}/src/univalue/*.exe
@@ -381,6 +397,8 @@ jobs:
381397 TEST_RUNNER_TIMEOUT_FACTOR : 40
382398
383399 steps :
400+ - *ANNOTATION_PR_NUMBER
401+
384402 - *CHECKOUT
385403
386404 - name : Download built executables
@@ -461,14 +479,14 @@ jobs:
461479 fail-fast : false
462480 matrix :
463481 include :
464- - name : ' 32 bit ARM, unit tests, no functional tests '
482+ - name : ' 32 bit ARM'
465483 cirrus-runner : ' ubuntu-24.04-arm' # Cirrus' Arm runners are Apple (with virtual Linux aarch64), which doesn't support 32-bit mode
466484 fallback-runner : ' ubuntu-24.04-arm'
467485 timeout-minutes : 120
468486 file-env : ' ./ci/test/00_setup_env_arm.sh'
469487 provider : ' gha'
470488
471- - name : ' ASan + LSan + UBSan + integer, no depends, USDT '
489+ - name : ' ASan + LSan + UBSan + integer'
472490 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md' # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
473491 fallback-runner : ' ubuntu-24.04'
474492 timeout-minutes : 120
@@ -486,13 +504,13 @@ jobs:
486504 timeout-minutes : 120
487505 file-env : ' ./ci/test/00_setup_env_mac_cross_intel.sh'
488506
489- - name : ' No wallet, libbitcoinkernel '
507+ - name : ' No wallet'
490508 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
491509 fallback-runner : ' ubuntu-24.04'
492510 timeout-minutes : 120
493- file-env : ' ./ci/test/00_setup_env_native_nowallet_libbitcoinkernel .sh'
511+ file-env : ' ./ci/test/00_setup_env_native_nowallet .sh'
494512
495- - name : ' no IPC, i686, DEBUG '
513+ - name : ' i686, no IPC '
496514 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
497515 fallback-runner : ' ubuntu-24.04'
498516 timeout-minutes : 120
@@ -510,13 +528,13 @@ jobs:
510528 timeout-minutes : 240
511529 file-env : ' ./ci/test/00_setup_env_native_fuzz_with_valgrind.sh'
512530
513- - name : ' previous releases, depends DEBUG '
531+ - name : ' previous releases'
514532 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
515533 fallback-runner : ' ubuntu-24.04'
516534 timeout-minutes : 120
517535 file-env : ' ./ci/test/00_setup_env_native_previous_releases.sh'
518536
519- - name : ' Alpine (musl), depends, gui '
537+ - name : ' Alpine (musl)'
520538 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
521539 fallback-runner : ' ubuntu-24.04'
522540 timeout-minutes : 120
@@ -528,7 +546,7 @@ jobs:
528546 timeout-minutes : 120
529547 file-env : ' ./ci/test/00_setup_env_native_tidy.sh'
530548
531- - name : ' TSan, depends, no gui '
549+ - name : ' TSan'
532550 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
533551 fallback-runner : ' ubuntu-24.04'
534552 timeout-minutes : 120
@@ -540,13 +558,15 @@ jobs:
540558 timeout-minutes : 150
541559 file-env : ' ./ci/test/00_setup_env_native_fuzz_with_msan.sh'
542560
543- - name : ' MSan, depends '
561+ - name : ' MSan'
544562 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-lg'
545563 fallback-runner : ' ubuntu-24.04'
546564 timeout-minutes : 120
547565 file-env : ' ./ci/test/00_setup_env_native_msan.sh'
548566
549567 steps :
568+ - *ANNOTATION_PR_NUMBER
569+
550570 - *CHECKOUT
551571
552572 - name : Configure environment
@@ -587,6 +607,8 @@ jobs:
587607 env :
588608 CONTAINER_NAME : " bitcoin-linter"
589609 steps :
610+ - *ANNOTATION_PR_NUMBER
611+
590612 - name : Checkout
591613 uses : actions/checkout@v5
592614 with :
@@ -599,11 +621,4 @@ jobs:
599621 cache-provider : ${{ needs.runners.outputs.provider }}
600622
601623 - name : CI script
602- run : |
603- set -o xtrace
604- docker buildx build -t "$CONTAINER_NAME" $DOCKER_BUILD_CACHE_ARG --file "./ci/lint_imagefile" .
605- CIRRUS_PR_FLAG=""
606- if [ "${{ github.event_name }}" = "pull_request" ]; then
607- CIRRUS_PR_FLAG="-e CIRRUS_PR=1"
608- fi
609- docker run --rm $CIRRUS_PR_FLAG -v "$(pwd)":/bitcoin "$CONTAINER_NAME"
624+ run : python .github/ci-lint-exec.py
0 commit comments