@@ -350,6 +350,47 @@ jobs:
350350 ${{ env.BASE_BUILD_DIR }}/src/univalue/*.exe
351351 ${{ env.BASE_BUILD_DIR }}/test/config.ini
352352
353+ mac-cross :
354+ name : ' Linux->macOS cross, no tests'
355+ needs : runners
356+ runs-on : ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
357+ if : ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
358+
359+ env :
360+ FILE_ENV : ' ./ci/test/00_setup_env_mac_cross.sh'
361+ DANGER_CI_ON_HOST_FOLDERS : 1
362+
363+ steps :
364+ - *CHECKOUT
365+
366+ - name : Configure environment
367+ uses : ./.github/actions/configure-environment
368+
369+ - name : Restore caches
370+ id : restore-cache
371+ uses : ./.github/actions/restore-caches
372+
373+ - name : Configure Docker
374+ uses : ./.github/actions/configure-docker
375+ with :
376+ cache-provider : ${{ needs.runners.outputs.provider }}
377+
378+ - name : CI script
379+ run : ./ci/test_run_all.sh
380+
381+ - name : Save caches
382+ uses : ./.github/actions/save-caches
383+
384+ - name : Upload built executables
385+ uses : actions/upload-artifact@v4
386+ with :
387+ name : mac-cross-executables-${{ github.run_id }}
388+ path : |
389+ ${{ env.BASE_BUILD_DIR }}/bin/*
390+ ${{ env.BASE_BUILD_DIR }}/src/secp256k1/bin/*
391+ ${{ env.BASE_BUILD_DIR }}/src/univalue/*
392+ ${{ env.BASE_BUILD_DIR }}/test/config.ini
393+
353394 windows-native-test :
354395 name : ' Windows, test cross-built'
355396 runs-on : windows-2022
@@ -408,8 +449,7 @@ jobs:
408449 echo "PREVIOUS_RELEASES_DIR=${{ runner.temp }}/previous_releases" >> "$GITHUB_ENV"
409450
410451 - name : Get previous releases
411- working-directory : test
412- run : ./get_previous_releases.py --target-dir $PREVIOUS_RELEASES_DIR
452+ run : ./test/get_previous_releases.py --target-dir $PREVIOUS_RELEASES_DIR
413453
414454 - name : Run functional tests
415455 env :
@@ -419,6 +459,60 @@ jobs:
419459 TEST_RUNNER_EXTRA : ${{ github.event_name != 'pull_request' && '--extended' || '' }}
420460 run : py -3 test/functional/test_runner.py --jobs $NUMBER_OF_PROCESSORS --ci --quiet --tmpdirprefix="$RUNNER_TEMP" --combinedlogslen=99999999 --timeout-factor=$TEST_RUNNER_TIMEOUT_FACTOR $EXCLUDE $TEST_RUNNER_EXTRA
421461
462+ mac-native-test :
463+ name : ' macOS, test cross-built'
464+ # The minimum supported macos version for releases
465+ runs-on : macos-14
466+ needs : mac-cross
467+
468+ env :
469+ TEST_RUNNER_TIMEOUT_FACTOR : 40
470+
471+ steps :
472+ - *CHECKOUT
473+
474+ - name : Download built executables
475+ uses : actions/download-artifact@v4
476+ with :
477+ name : mac-cross-executables-${{ github.run_id }}
478+
479+ - name : Ensure downloaded binaries are executable
480+ run : chmod -R +x ./bin ./src/secp256k1/bin ./src/univalue
481+
482+ - name : Run bitcoind
483+ run : ./bin/bitcoind -version
484+
485+ - name : Run unit tests
486+ run : |
487+ ./bin/test_bitcoin -l test_suite
488+ ./src/secp256k1/bin/exhaustive_tests
489+ ./src/secp256k1/bin/noverify_tests
490+ ./src/secp256k1/bin/tests
491+ ./src/univalue/object
492+ ./src/univalue/unitester
493+
494+ - name : Run benchmarks
495+ run : ./bin/bench_bitcoin -sanity-check
496+
497+ - name : Adjust paths in test/config.ini
498+ run : |
499+ sed -i '' "s|^SRCDIR=.*|SRCDIR=${{ github.workspace }}|" test/config.ini
500+ sed -i '' "s|^BUILDDIR=.*|BUILDDIR=${{ github.workspace }}|" test/config.ini
501+ sed -i '' "s|^RPCAUTH=.*|RPCAUTH=${{ github.workspace }}/share/rpcauth/rpcauth.py|" test/config.ini
502+ cat test/config.ini
503+
504+ - name : Set previous release directory
505+ run : |
506+ echo "PREVIOUS_RELEASES_DIR=${{ runner.temp }}/previous_releases" >> "$GITHUB_ENV"
507+
508+ - name : Get previous releases
509+ run : ./test/get_previous_releases.py --target-dir $PREVIOUS_RELEASES_DIR
510+
511+ - name : Run functional tests
512+ env :
513+ TEST_RUNNER_EXTRA : ${{ github.event_name != 'pull_request' && '--extended' || '' }}
514+ run : python3 test/functional/test_runner.py --jobs $(sysctl -n hw.ncpu) --ci --quiet --tmpdirprefix="$RUNNER_TEMP" --combinedlogslen=99999999 --timeout-factor=$TEST_RUNNER_TIMEOUT_FACTOR $TEST_RUNNER_EXTRA
515+
422516 ci-matrix :
423517 name : ${{ matrix.name }}
424518 needs : runners
@@ -447,12 +541,6 @@ jobs:
447541 timeout-minutes : 120
448542 file-env : ' ./ci/test/00_setup_env_native_asan.sh'
449543
450- - name : ' macOS-cross, gui, no tests'
451- cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
452- fallback-runner : ' ubuntu-24.04'
453- timeout-minutes : 120
454- file-env : ' ./ci/test/00_setup_env_mac_cross.sh'
455-
456544 - name : ' No wallet, libbitcoinkernel'
457545 cirrus-runner : ' ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
458546 fallback-runner : ' ubuntu-24.04'
0 commit comments