Changeset View
Changeset View
Standalone View
Standalone View
contrib/teamcity/build-configurations.sh
#!/usr/bin/env bash | #!/usr/bin/env bash | ||||
export LC_ALL=C | export LC_ALL=C | ||||
set -euxo pipefail | set -euxo pipefail | ||||
if [ -z "$ABC_BUILD_NAME" ]; then | if [ -z "$ABC_BUILD_NAME" ]; then | ||||
echo "Error: Environment variable ABC_BUILD_NAME must be set" | echo "Error: Environment variable ABC_BUILD_NAME must be set" | ||||
exit 1 | exit 1 | ||||
fi | fi | ||||
echo "Running build configuration '${ABC_BUILD_NAME}'..." | echo "Running build configuration '${ABC_BUILD_NAME}'..." | ||||
TOPLEVEL=$(git rev-parse --show-toplevel) | CI_SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||||
cd "${TOPLEVEL}/contrib/teamcity" | |||||
# shellcheck disable=SC1090,SC1091 | |||||
. "${CI_SCRIPTS_DIR}"/setup.sh | |||||
cd "${BUILD_DIR}" | |||||
case "$ABC_BUILD_NAME" in | case "$ABC_BUILD_NAME" in | ||||
build-asan) | build-asan) | ||||
export CONFIGURE_FLAGS="--enable-debug --with-sanitizers=address --disable-ccache" | # Build with the address sanitizer, then run unit tests and functional test.s | ||||
./build.sh | CONFIGURE_FLAGS="--enable-debug --with-sanitizers=address --disable-ccache" "${CI_SCRIPTS_DIR}"/build.sh | ||||
make -j "${THREADS}" check | |||||
./test/functional/test_runner.py -J=junit_results_asan.xml ${TEST_RUNNER_FLAGS} | |||||
;; | ;; | ||||
build-ubsan) | build-ubsan) | ||||
export CONFIGURE_FLAGS="--enable-debug --with-sanitizers=undefined --disable-ccache CC=clang CXX=clang++" | # Build with the undefined sanitizer, then run unit tests and functional tests. | ||||
./build.sh | CONFIGURE_FLAGS="--enable-debug --with-sanitizers=undefined --disable-ccache CC=clang CXX=clang++" "${CI_SCRIPTS_DIR}"/build.sh | ||||
make -j "${THREADS}" check | |||||
./test/functional/test_runner.py -J=junit_results_ubsan.xml ${TEST_RUNNER_FLAGS} | |||||
;; | ;; | ||||
build-default) | build-default) | ||||
./build.sh | # Build, run unit tests and functional tests (with extended cutoff if this is the master branch). | ||||
./build-secp256k1.sh | "${CI_SCRIPTS_DIR}"/build.sh | ||||
make -j "${THREADS}" check | |||||
BRANCH=$(git rev-parse --abbrev-ref HEAD) | |||||
if [[ "${BRANCH}" == "master" ]]; then | |||||
TEST_RUNNER_FLAGS="${TEST_RUNNER_FLAGS} --cutoff=600" | |||||
fi | |||||
./test/functional/test_runner.py -J=junit_results_default.xml ${TEST_RUNNER_FLAGS} | |||||
./test/functional/test_runner.py -J=junit_results_next_upgrade.xml --with-gravitonactivation ${TEST_RUNNER_FLAGS} | |||||
# Build secp256k1 and run the java tests. | |||||
export TOPLEVEL="${TOPLEVEL}/src/secp256k1" | |||||
# shellcheck disable=SC1090,SC1091 | |||||
. "${CI_SCRIPTS_DIR}"/setup.sh | |||||
cd "${BUILD_DIR}" | |||||
CONFIGURE_FLAGS="--enable-jni --enable-experimental --enable-module-ecdh" "${CI_SCRIPTS_DIR}"/build.sh | |||||
make -j "${THREADS}" check-java | |||||
;; | ;; | ||||
build-without-wallet) | build-without-wallet) | ||||
export DISABLE_WALLET=1 | # Build without wallet and run the unit tests. | ||||
./build.sh | CONFIGURE_FLAGS="--disable-wallet" "${CI_SCRIPTS_DIR}"/build.sh | ||||
make -j "${THREADS}" check | |||||
;; | ;; | ||||
*) | *) | ||||
echo "Error: Invalid build name '${ABC_BUILD_NAME}'" | echo "Error: Invalid build name '${ABC_BUILD_NAME}'" | ||||
exit 2 | exit 2 | ||||
;; | ;; | ||||
esac | esac |