mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-07-23 22:58:59 +02:00
Also, add a missing quote around -DCMAKE_INSTALL_PREFIX to avoid word splitting. Otherwise, cmake would warn: ``` + cmake -S /home/runner/work/_temp -B /home/runner/work/_temp/build -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DCMAKE_INSTALL_PREFIX=/home/runner/work/_temp/ci/scratch_ ₿🧪_/out -Werror=dev --preset=dev-mode -DSANITIZERS=address,float-divide-by-zero,integer,undefined -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_FLAGS=-ftrivial-auto-var-init=pattern -DCMAKE_CXX_FLAGS=-ftrivial-auto-var-init=pattern -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=mold -DAPPEND_CXXFLAGS=-std=c++23 '-DAPPEND_CPPFLAGS=-DARENA_DEBUG -DDEBUG_LOCKORDER' CMake Warning: Ignoring extra path from command line: "₿🧪_/out" ``` Also, allow spaces in the debug log file regex in a test. Otherwise, the test would fail: ``` TestFramework (ERROR): Unexpected exception: Traceback (most recent call last): File "./test/functional/test_framework/test_framework.py", line 142, in main self.run_test() ~~~~~~~~~~~~~^^ File "./test/functional/feature_logging.py", line 40, in run_test self.nodes[0].assert_start_raises_init_error([f"-debuglogfile={invalidname}"], exp_stderr, match=ErrorMatch.FULL_REGEX) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "./test/functional/test_framework/test_node.py", line 743, in assert_start_raises_init_error self._raise_assertion_error( ~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 'Expected message "{}" does not fully match stderr:\n"{}"'.format(expected_msg, stderr)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "./test/functional/test_framework/test_node.py", line 229, in _raise_assertion_error raise AssertionError(self._node_msg(msg)) AssertionError: [node 0] Expected message "Error: Could not open debug log file \S+$" does not fully match stderr: "Error: Could not open debug log file /Users/runner/work/bitcoin-core-with-ci/bitcoin-core-with-ci/repo_archive/ci/scratch_ ₿🧪_/test_runner/test_runner_₿_🏃_20260218_095938/feature_logging_31/node0/regtest/foo/foo.log" ``` Also, add missing quotes in a test. Otherwise, the test would fail: ``` 455/455 - feature_notifications.py failed, Duration: 402 s stdout: TestFramework (INFO): Initializing test directory /home/runner/work/_temp/ci/scratch_ ₿🧪_/test_runner/test_runner_₿_🏃_20260218_113529/feature_notifications_128 TestFramework (INFO): test -blocknotify TestFramework.utils (ERROR): wait_until() failed. Predicate: '''' self.wait_until(lambda: len(os.listdir(self.blocknotify_dir)) == block_count, timeout=10) '''
68 lines
3.3 KiB
Bash
Executable File
68 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2019-present The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
export LC_ALL=C.UTF-8
|
|
|
|
set -o errexit -o nounset -o pipefail -o xtrace
|
|
|
|
# The source root dir, usually from git, usually read-only.
|
|
# The ci system copies this folder.
|
|
BASE_READ_ONLY_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd )
|
|
export BASE_READ_ONLY_DIR
|
|
# The destination root dir inside the container.
|
|
# This folder will also hold any SDKs.
|
|
# This folder only exists on the ci guest and will be a copy of BASE_READ_ONLY_DIR
|
|
export BASE_ROOT_DIR="${BASE_ROOT_DIR:-/ci_container_base}"
|
|
# The depends dir.
|
|
# This folder exists only on the ci guest, and on the ci host as a volume.
|
|
export DEPENDS_DIR=${DEPENDS_DIR:-$BASE_ROOT_DIR/depends}
|
|
# A folder for the ci system to put temporary files (build result, datadirs for tests, ...)
|
|
# The name contains a space and a non-ASCII symbol to confirm the build and
|
|
# tests handle word-splitting and UTF8 correctly.
|
|
# This folder only exists on the ci guest.
|
|
export BASE_SCRATCH_DIR=${BASE_SCRATCH_DIR:-$BASE_ROOT_DIR/ci/scratch_ ₿🧪_}
|
|
|
|
echo "Setting specific values in env"
|
|
# shellcheck disable=SC1090
|
|
source "${FILE_ENV}"
|
|
|
|
echo "Fallback to default values in env (if not yet set)"
|
|
# The number of parallel jobs to pass down to make and test_runner.py
|
|
export MAKEJOBS=${MAKEJOBS:--j$(if command -v nproc > /dev/null 2>&1; then nproc; else sysctl -n hw.logicalcpu; fi)}
|
|
|
|
export RUN_UNIT_TESTS=${RUN_UNIT_TESTS:-true}
|
|
export RUN_FUNCTIONAL_TESTS=${RUN_FUNCTIONAL_TESTS:-true}
|
|
export RUN_TIDY=${RUN_TIDY:-false}
|
|
# By how much to scale the test_runner timeouts (option --timeout-factor).
|
|
# This is needed because some ci machines have slow CPU or disk, so sanitizers
|
|
# might be slow or a reindex might be waiting on disk IO.
|
|
export TEST_RUNNER_TIMEOUT_FACTOR=${TEST_RUNNER_TIMEOUT_FACTOR:-40}
|
|
export RUN_FUZZ_TESTS=${RUN_FUZZ_TESTS:-false}
|
|
|
|
# Randomize test order.
|
|
# See https://www.boost.org/doc/libs/1_71_0/libs/test/doc/html/boost_test/utf_reference/rt_param_reference/random.html
|
|
export BOOST_TEST_RANDOM=${BOOST_TEST_RANDOM:-1}
|
|
# See man 7 debconf
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
export CCACHE_MAXSIZE=${CCACHE_MAXSIZE:-2G}
|
|
export CCACHE_TEMPDIR=${CCACHE_TEMPDIR:-/tmp/.ccache-temp}
|
|
export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1}
|
|
# The cache dir.
|
|
# This folder exists only on the ci guest, and on the ci host as a volume.
|
|
export CCACHE_DIR="${CCACHE_DIR:-$BASE_SCRATCH_DIR/ccache}"
|
|
# Folder where the build result is put (bin and lib).
|
|
export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out}
|
|
# The folder for previous release binaries.
|
|
# This folder exists only on the ci guest, and on the ci host as a volume.
|
|
export PREVIOUS_RELEASES_DIR=${PREVIOUS_RELEASES_DIR:-$BASE_ROOT_DIR/prev_releases}
|
|
export CI_BASE_PACKAGES=${CI_BASE_PACKAGES:-build-essential pkgconf curl ca-certificates ccache python3-dev rsync git procps bison e2fsprogs cmake ninja-build}
|
|
export GOAL=${GOAL:-install}
|
|
export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets}
|
|
export CI_RETRY_EXE=${CI_RETRY_EXE:-"retry"}
|
|
|
|
# The --platform argument used with `docker build` and `docker run`.
|
|
export CI_IMAGE_PLATFORM=${CI_IMAGE_PLATFORM:-"linux"} # Force linux, but use native arch by default
|