Changeset View
Changeset View
Standalone View
Standalone View
contrib/teamcity/build-configurations.sh
Show All 11 Lines | |||||
echo "Running build configuration '${ABC_BUILD_NAME}'..." | echo "Running build configuration '${ABC_BUILD_NAME}'..." | ||||
TOPLEVEL=$(git rev-parse --show-toplevel) | TOPLEVEL=$(git rev-parse --show-toplevel) | ||||
export TOPLEVEL | export TOPLEVEL | ||||
setup() { | setup() { | ||||
: "${BUILD_DIR:=${TOPLEVEL}/build}" | : "${BUILD_DIR:=${TOPLEVEL}/build}" | ||||
mkdir -p "${BUILD_DIR}/output" | |||||
BUILD_DIR=$(cd "${BUILD_DIR}"; pwd) | BUILD_DIR=$(cd "${BUILD_DIR}"; pwd) | ||||
export BUILD_DIR | export BUILD_DIR | ||||
TEST_RUNNER_FLAGS="--tmpdirprefix=output" | |||||
cd "${BUILD_DIR}" | cd "${BUILD_DIR}" | ||||
# Determine the number of build threads | # Determine the number of build threads | ||||
THREADS=$(nproc || sysctl -n hw.ncpu) | THREADS=$(nproc || sysctl -n hw.ncpu) | ||||
export THREADS | export THREADS | ||||
# Base directories for sanitizer related files | # Base directories for sanitizer related files | ||||
SAN_SUPP_DIR="${TOPLEVEL}/test/sanitizer_suppressions" | SAN_SUPP_DIR="${TOPLEVEL}/test/sanitizer_suppressions" | ||||
Show All 32 Lines | CMAKE_FLAGS=( | ||||
# ASAN does not support assembly code: https://github.com/google/sanitizers/issues/192 | # ASAN does not support assembly code: https://github.com/google/sanitizers/issues/192 | ||||
# This will trigger a segfault if the SSE4 implementation is selected for SHA256. | # This will trigger a segfault if the SSE4 implementation is selected for SHA256. | ||||
# Disabling the assembly works around the issue. | # Disabling the assembly works around the issue. | ||||
"-DCRYPTO_USE_ASM=OFF" | "-DCRYPTO_USE_ASM=OFF" | ||||
"-DENABLE_SANITIZERS=address" | "-DENABLE_SANITIZERS=address" | ||||
"-DCCACHE=OFF" | "-DCCACHE=OFF" | ||||
) | ) | ||||
CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | ||||
ninja check | ninja check check-functional | ||||
./test/functional/test_runner.py ${TEST_RUNNER_FLAGS} | |||||
;; | ;; | ||||
build-ubsan) | build-ubsan) | ||||
# Build with the undefined sanitizer, then run unit tests and functional tests. | # Build with the undefined sanitizer, then run unit tests and functional tests. | ||||
CMAKE_FLAGS=( | CMAKE_FLAGS=( | ||||
"-DCMAKE_BUILD_TYPE=Debug" | "-DCMAKE_BUILD_TYPE=Debug" | ||||
"-DENABLE_SANITIZERS=undefined" | "-DENABLE_SANITIZERS=undefined" | ||||
"-DCCACHE=OFF" | "-DCCACHE=OFF" | ||||
"-DCMAKE_C_COMPILER=clang" | "-DCMAKE_C_COMPILER=clang" | ||||
"-DCMAKE_CXX_COMPILER=clang++" | "-DCMAKE_CXX_COMPILER=clang++" | ||||
) | ) | ||||
CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | ||||
ninja check | ninja check check-functional | ||||
./test/functional/test_runner.py ${TEST_RUNNER_FLAGS} | |||||
;; | ;; | ||||
build-tsan) | build-tsan) | ||||
# Build with the thread sanitizer, then run unit tests and functional tests. | # Build with the thread sanitizer, then run unit tests and functional tests. | ||||
CMAKE_FLAGS=( | CMAKE_FLAGS=( | ||||
"-DCMAKE_BUILD_TYPE=Debug" | "-DCMAKE_BUILD_TYPE=Debug" | ||||
"-DENABLE_SANITIZERS=thread" | "-DENABLE_SANITIZERS=thread" | ||||
"-DCCACHE=OFF" | "-DCCACHE=OFF" | ||||
"-DCMAKE_C_COMPILER=clang" | "-DCMAKE_C_COMPILER=clang" | ||||
"-DCMAKE_CXX_COMPILER=clang++" | "-DCMAKE_CXX_COMPILER=clang++" | ||||
) | ) | ||||
CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | ||||
ninja check | ninja check check-functional | ||||
./test/functional/test_runner.py ${TEST_RUNNER_FLAGS} | |||||
;; | ;; | ||||
build-diff) | build-diff) | ||||
# Build, run unit tests and functional tests. | # Build, run unit tests and functional tests. | ||||
CMAKE_FLAGS=( | CMAKE_FLAGS=( | ||||
"-DSECP256K1_ENABLE_MODULE_ECDH=ON" | "-DSECP256K1_ENABLE_MODULE_ECDH=ON" | ||||
"-DSECP256K1_ENABLE_JNI=ON" | "-DSECP256K1_ENABLE_JNI=ON" | ||||
) | ) | ||||
CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | ||||
ninja check check-secp256k1 | ninja check check-secp256k1 check-functional check-functional-upgrade-activated | ||||
./test/functional/test_runner.py ${TEST_RUNNER_FLAGS} | |||||
./test/functional/test_runner.py -J=junit_results_next_upgrade.xml --with-phononactivation ${TEST_RUNNER_FLAGS} | |||||
;; | ;; | ||||
build-master) | build-master) | ||||
# Build, run unit tests and extended functional tests. | # Build, run unit tests and extended functional tests. | ||||
CMAKE_FLAGS=( | CMAKE_FLAGS=( | ||||
"-DSECP256K1_ENABLE_MODULE_ECDH=ON" | "-DSECP256K1_ENABLE_MODULE_ECDH=ON" | ||||
"-DSECP256K1_ENABLE_JNI=ON" | "-DSECP256K1_ENABLE_JNI=ON" | ||||
) | ) | ||||
CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | ||||
ninja check check-secp256k1 | ninja check check-secp256k1 check-functional-extended check-functional-upgrade-activated-extended | ||||
./test/functional/test_runner.py --extended ${TEST_RUNNER_FLAGS} | |||||
./test/functional/test_runner.py -J=junit_results_next_upgrade.xml --with-phononactivation --extended ${TEST_RUNNER_FLAGS} | |||||
;; | ;; | ||||
build-without-wallet) | build-without-wallet) | ||||
# Build without wallet and run the unit tests. | # Build without wallet and run the unit tests. | ||||
CMAKE_FLAGS=( | CMAKE_FLAGS=( | ||||
"-DBUILD_BITCOIN_WALLET=OFF" | "-DBUILD_BITCOIN_WALLET=OFF" | ||||
) | ) | ||||
CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | CMAKE_FLAGS="${CMAKE_FLAGS[*]}" "${CI_SCRIPTS_DIR}"/build_cmake.sh | ||||
▲ Show 20 Lines • Show All 53 Lines • Show Last 20 Lines |