Skip to content

Commit a07bd84

Browse files
committed
Merge bitcoin/bitcoin#33824: ci: Enable experimental kernel stuff in most CI tasks via dev-mode
fae8361 ci: [refactor] Use --preset=dev-mode in mac_native task (MarcoFalke) fadb67b ci: [refactor] Base nowallet task on --preset=dev-mode (MarcoFalke) 6666980 ci: Enable bitcoin-chainstate and test_bitcoin-qt in win64 task (MarcoFalke) faff7b2 ci: Enable experimental kernel stuff in i686 task (MarcoFalke) fa1632e ci: Enable experimental kernel stuff in mac-cross tasks (MarcoFalke) fad10ff ci: Enable experimental kernel stuff in armhf task (MarcoFalke) fa9d67c ci: Enable experimental kernel stuff in Alpine task (MarcoFalke) fab3fb8 ci: Enable experimental kernel stuff in s390x task (MarcoFalke) fa7da8a ci: Enable experimental kernel stuff in valgrind task (MarcoFalke) fa9c297 ci: Enable experimental kernel stuff in TSan task (MarcoFalke) fad30d4 ci: Enable experimental kernel stuff in MSan task (MarcoFalke) Pull request description: Most of the CI tasks have a long list of stuff that they enable. This makes it hard to see what each CI task is actually running. Also, most of the CI tasks should probably mimic the `dev-mode` CMake preset and run on as much stuff as possible. Usually, changing the `dev-mode` comes with changing those CI tasks as well in the same commit, which is verbose. Fix both issues, by basing most CI tasks on the `dev-mode`. In the future, this makes it easier to change the `dev-mode` in a single place. If CI tasks explicitly disable something, it will be listed explicitly in them. As a side-effect this will enable the kernel stuff for some CI task that did not have it enabled, which seems desirable. ACKs for top commit: TheCharlatan: Nice, ACK fae8361 janb84: ACK fae8361 hebasto: ACK fae8361, I have reviewed the code and it looks OK. Tree-SHA512: 58d9d553437b57362e9ec0766bd202482435f263d3f4c6ee7020c5e1e5ba69f8c064630423424f9d754254a66981e670b964a5aee58ef87f30b7d775642255be
2 parents 1af46cf + fae8361 commit a07bd84

13 files changed

+56
-21
lines changed

.github/workflows/ci.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ jobs:
134134
include:
135135
- job-type: standard
136136
file-env: './ci/test/00_setup_env_mac_native.sh'
137-
job-name: 'macOS native, no depends, sqlite only, gui'
137+
job-name: 'macOS native'
138138
- job-type: fuzz
139139
file-env: './ci/test/00_setup_env_mac_native_fuzz.sh'
140140
job-name: 'macOS native, fuzz'
@@ -344,7 +344,7 @@ jobs:
344344
py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora"
345345
346346
windows-cross:
347-
name: 'Linux->Windows cross, no tests'
347+
name: 'Windows-cross to x86_64'
348348
needs: runners
349349
runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
350350
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
@@ -381,6 +381,7 @@ jobs:
381381
with:
382382
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
383383
path: |
384+
${{ env.BASE_BUILD_DIR }}/bin/*.dll
384385
${{ env.BASE_BUILD_DIR }}/bin/*.exe
385386
${{ env.BASE_BUILD_DIR }}/src/secp256k1/bin/*.exe
386387
${{ env.BASE_BUILD_DIR }}/src/univalue/*.exe
@@ -478,7 +479,7 @@ jobs:
478479
fail-fast: false
479480
matrix:
480481
include:
481-
- name: '32 bit ARM, unit tests, no functional tests'
482+
- name: '32 bit ARM'
482483
cirrus-runner: 'ubuntu-24.04-arm' # Cirrus' Arm runners are Apple (with virtual Linux aarch64), which doesn't support 32-bit mode
483484
fallback-runner: 'ubuntu-24.04-arm'
484485
timeout-minutes: 120
@@ -503,13 +504,13 @@ jobs:
503504
timeout-minutes: 120
504505
file-env: './ci/test/00_setup_env_mac_cross_intel.sh'
505506

506-
- name: 'No wallet, libbitcoinkernel'
507+
- name: 'No wallet'
507508
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
508509
fallback-runner: 'ubuntu-24.04'
509510
timeout-minutes: 120
510-
file-env: './ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh'
511+
file-env: './ci/test/00_setup_env_native_nowallet.sh'
511512

512-
- name: 'no IPC, i686, DEBUG'
513+
- name: 'i686, no IPC'
513514
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
514515
fallback-runner: 'ubuntu-24.04'
515516
timeout-minutes: 120
@@ -533,7 +534,7 @@ jobs:
533534
timeout-minutes: 120
534535
file-env: './ci/test/00_setup_env_native_previous_releases.sh'
535536

536-
- name: 'Alpine (musl), depends, gui'
537+
- name: 'Alpine (musl)'
537538
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
538539
fallback-runner: 'ubuntu-24.04'
539540
timeout-minutes: 120
@@ -545,7 +546,7 @@ jobs:
545546
timeout-minutes: 120
546547
file-env: './ci/test/00_setup_env_native_tidy.sh'
547548

548-
- name: 'TSan, depends, no gui'
549+
- name: 'TSan'
549550
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
550551
fallback-runner: 'ubuntu-24.04'
551552
timeout-minutes: 120
@@ -557,7 +558,7 @@ jobs:
557558
timeout-minutes: 150
558559
file-env: './ci/test/00_setup_env_native_fuzz_with_msan.sh'
559560

560-
- name: 'MSan, depends'
561+
- name: 'MSan'
561562
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-lg'
562563
fallback-runner: 'ubuntu-24.04'
563564
timeout-minutes: 120

ci/test/00_setup_env_arm.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export CI_LIMIT_STACK_SIZE=1
2020
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
2121
# This could be removed once the ABI change warning does not show up by default
2222
export BITCOIN_CONFIG=" \
23+
--preset=dev-mode \
2324
-DREDUCE_EXPORTS=ON \
2425
-DCMAKE_CXX_FLAGS='-Wno-psabi -Wno-error=maybe-uninitialized' \
2526
"

ci/test/00_setup_env_i686_no_ipc.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ export GOAL="install"
1616
export CI_LIMIT_STACK_SIZE=1
1717
export TEST_RUNNER_EXTRA="--v2transport --usecli"
1818
export BITCOIN_CONFIG="\
19+
--preset=dev-mode \
20+
-DENABLE_IPC=OFF \
1921
-DCMAKE_BUILD_TYPE=Debug \
2022
-DCMAKE_C_COMPILER='clang;-m32' \
2123
-DCMAKE_CXX_COMPILER='clang++;-m32' \

ci/test/00_setup_env_mac_cross.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@ export XCODE_BUILD_ID=15A240d
1717
export RUN_UNIT_TESTS=false
1818
export RUN_FUNCTIONAL_TESTS=false
1919
export GOAL="deploy"
20-
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DBUILD_KERNEL_LIB=ON -DREDUCE_EXPORTS=ON"
20+
export BITCOIN_CONFIG="\
21+
--preset=dev-mode \
22+
-DWITH_USDT=OFF \
23+
-DREDUCE_EXPORTS=ON \
24+
"

ci/test/00_setup_env_mac_cross_intel.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@ export XCODE_BUILD_ID=15A240d
1717
export RUN_UNIT_TESTS=false
1818
export RUN_FUNCTIONAL_TESTS=false
1919
export GOAL="deploy"
20-
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DREDUCE_EXPORTS=ON"
20+
export BITCOIN_CONFIG="\
21+
--preset=dev-mode \
22+
-DWITH_USDT=OFF \
23+
-DREDUCE_EXPORTS=ON \
24+
"

ci/test/00_setup_env_mac_native.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,13 @@ export CONTAINER_NAME="ci_mac_native" # macos does not use a container, but the
1010
export PIP_PACKAGES="--break-system-packages pycapnp zmq"
1111
export GOAL="install deploy"
1212
export CMAKE_GENERATOR="Ninja"
13-
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DBUILD_KERNEL_TEST=ON -DREDUCE_EXPORTS=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000'"
1413
export CI_OS_NAME="macos"
1514
export NO_DEPENDS=1
1615
export OSX_SDK=""
16+
export BITCOIN_CONFIG="\
17+
--preset=dev-mode \
18+
-DWITH_USDT=OFF \
19+
-DREDUCE_EXPORTS=ON \
20+
-DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000' \
21+
"
1722
export BITCOIN_CMD="bitcoin -m" # Used in functional tests

ci/test/00_setup_env_native_alpine_musl.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ export PIP_PACKAGES="--break-system-packages pyzmq pycapnp"
1313
export DEP_OPTS="DEBUG=1"
1414
export GOAL="install"
1515
export BITCOIN_CONFIG="\
16-
-DWITH_ZMQ=ON \
17-
-DBUILD_GUI=ON \
16+
--preset=dev-mode \
1817
-DREDUCE_EXPORTS=ON \
1918
-DCMAKE_BUILD_TYPE=Debug \
2019
"

ci/test/00_setup_env_native_msan.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ export CI_LIMIT_STACK_SIZE=1
2222
# Setting CMAKE_{C,CXX}_FLAGS_DEBUG flags to an empty string ensures that the flags set in MSAN_FLAGS remain unaltered.
2323
# _FORTIFY_SOURCE is not compatible with MSAN.
2424
export BITCOIN_CONFIG="\
25+
--preset=dev-mode \
26+
-DBUILD_GUI=OFF \
2527
-DCMAKE_BUILD_TYPE=Debug \
2628
-DCMAKE_C_FLAGS_DEBUG='' \
2729
-DCMAKE_CXX_FLAGS_DEBUG='' \

ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh renamed to ci/test/00_setup_env_native_nowallet.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@
66

77
export LC_ALL=C.UTF-8
88

9-
export CONTAINER_NAME=ci_native_nowallet_libbitcoinkernel
9+
export CONTAINER_NAME=ci_native_nowallet
1010
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
1111
# Use minimum supported python3.10 (or best-effort 3.12) and clang-17, see doc/dependencies.md
1212
export PACKAGES="python3-zmq python3-pip clang-17 llvm-17 libc++abi-17-dev libc++-17-dev"
1313
export PIP_PACKAGES="--break-system-packages pycapnp"
1414
export DEP_OPTS="NO_WALLET=1 CC=clang-17 CXX='clang++-17 -stdlib=libc++'"
1515
export GOAL="install"
16-
export BITCOIN_CONFIG="-DREDUCE_EXPORTS=ON -DBUILD_UTIL_CHAINSTATE=ON -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON -DBUILD_SHARED_LIBS=ON"
16+
export BITCOIN_CONFIG="\
17+
--preset=dev-mode \
18+
-DREDUCE_EXPORTS=ON \
19+
-DENABLE_WALLET=OFF \
20+
"

ci/test/00_setup_env_native_tsan.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ export PIP_PACKAGES="--break-system-packages pycapnp"
1616
export DEP_OPTS="CC=clang CXX=clang++ CXXFLAGS='${LIBCXX_FLAGS}' NO_QT=1"
1717
export GOAL="install"
1818
export CI_LIMIT_STACK_SIZE=1
19-
export BITCOIN_CONFIG="-DWITH_ZMQ=ON -DSANITIZERS=thread \
20-
-DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES'"
19+
export BITCOIN_CONFIG="\
20+
--preset=dev-mode \
21+
-DBUILD_GUI=OFF \
22+
-DSANITIZERS=thread \
23+
-DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES' \
24+
"
2125
export USE_INSTRUMENTED_LIBCPP="Thread"

0 commit comments

Comments
 (0)