mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 20:12:57 +01:00
4c2211dd41
414326952c use export LC_ALL=C.UTF-8 (Julian Fleischer) 728c82d029 make script exit if a command fails (Julian Fleischer) 506890b24d move remaining travis build steps into individual files (Julian Fleischer) 272306ea57 number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer) 519e2739cf move lint stage up to resemble travis build ui (Julian Fleischer) 86d34f0e65 abort script in END_FOLD on non-zero exit code (Julian Fleischer) 4f2f88c7b0 move script sections info individual files and comply with shellcheck (Julian Fleischer) Pull request description: This PR is extracted from https://github.com/bitcoin/bitcoin/pull/13816 to make that one easier to review. It follows on https://github.com/bitcoin/bitcoin/pull/13849 and https://github.com/bitcoin/bitcoin/pull/13851 In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`. This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable. Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
91 lines
3.9 KiB
Bash
Executable File
91 lines
3.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# This script is meant to be sourced into the actual build script. It contains the build matrix and will set all
|
|
# necessary environment variables for the request build target
|
|
|
|
export LC_ALL=C.UTF-8
|
|
|
|
export BUILD_TARGET=${BUILD_TARGET:-linux64}
|
|
export PULL_REQUEST=${PULL_REQUEST:-false}
|
|
export JOB_NUMBER=${JOB_NUMBER:-1}
|
|
|
|
export BUILDER_IMAGE_NAME="dash-builder-$BUILD_TARGET-$JOB_NUMBER"
|
|
|
|
export HOST_SRC_DIR=${HOST_SRC_DIR:-$(pwd)}
|
|
export HOST_CACHE_DIR=${HOST_CACHE_DIR:-$(pwd)/ci-cache-$BUILD_TARGET}
|
|
|
|
export SRC_DIR=${SRC_DIR:-$HOST_SRC_DIR}
|
|
export BUILD_DIR=$SRC_DIR
|
|
export OUT_DIR=$BUILD_DIR/out
|
|
|
|
export CACHE_DIR=${CACHE_DIR:-$HOST_CACHE_DIR}
|
|
export CCACHE_DIR=$CACHE_DIR/ccache
|
|
|
|
export DOCKER_RUN_VOLUME_ARGS="-v $HOST_SRC_DIR:$SRC_DIR -v $HOST_CACHE_DIR:$CACHE_DIR"
|
|
export DOCKER_RUN_ENV_ARGS="-e SRC_DIR=$SRC_DIR -e CACHE_DIR=$CACHE_DIR -e PULL_REQUEST=$PULL_REQUEST -e COMMIT_RANGE=$COMMIT_RANGE -e JOB_NUMBER=$JOB_NUMBER -e BUILD_TARGET=$BUILD_TARGET"
|
|
export DOCKER_RUN_ARGS="$DOCKER_RUN_VOLUME_ARGS $DOCKER_RUN_ENV_ARGS"
|
|
export DOCKER_RUN_IN_BUILDER="docker run -t --rm -w $SRC_DIR $DOCKER_RUN_ARGS $BUILDER_IMAGE_NAME"
|
|
|
|
# Default values for targets
|
|
export GOAL="install"
|
|
export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks}
|
|
MAKEJOBS="-j$(nproc)"
|
|
export MAKEJOBS
|
|
|
|
export RUN_UNITTESTS=true
|
|
export RUN_INTEGRATIONTESTS=true
|
|
|
|
if [ "$BUILD_TARGET" = "arm-linux" ]; then
|
|
export HOST=arm-linux-gnueabihf
|
|
export CHECK_DOC=1
|
|
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
|
|
# This could be removed once the ABI change warning does not show up by default
|
|
export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"
|
|
export RUN_UNITTESTS=false
|
|
export RUN_INTEGRATIONTESTS=false
|
|
elif [ "$BUILD_TARGET" = "win32" ]; then
|
|
export HOST=i686-w64-mingw32
|
|
export DPKG_ADD_ARCH="i386"
|
|
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --disable-miner"
|
|
export DIRECT_WINE_EXEC_TESTS=true
|
|
elif [ "$BUILD_TARGET" = "win64" ]; then
|
|
export HOST=x86_64-w64-mingw32
|
|
export DPKG_ADD_ARCH="i386"
|
|
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --disable-miner"
|
|
export DIRECT_WINE_EXEC_TESTS=true
|
|
elif [ "$BUILD_TARGET" = "linux32" ]; then
|
|
export HOST=i686-pc-linux-gnu
|
|
export BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports --enable-crash-hooks LDFLAGS=-static-libstdc++"
|
|
export USE_SHELL="/bin/dash"
|
|
export PYZMQ=true
|
|
elif [ "$BUILD_TARGET" = "linux64" ]; then
|
|
export HOST=x86_64-unknown-linux-gnu
|
|
export DEP_OPTS="NO_UPNP=1 DEBUG=1"
|
|
export BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports --enable-crash-hooks"
|
|
export CPPFLAGS="-DDEBUG_LOCKORDER -DENABLE_DASH_DEBUG -DARENA_DEBUG"
|
|
export PYZMQ=true
|
|
elif [ "$BUILD_TARGET" = "linux64_cxx17" ]; then
|
|
export HOST=x86_64-unknown-linux-gnu
|
|
export DEP_OPTS="NO_UPNP=1 DEBUG=1"
|
|
export BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports --enable-crash-hooks --enable-c++17 --with-sanitizers=undefined"
|
|
export CPPFLAGS="-DDEBUG_LOCKORDER -DENABLE_DASH_DEBUG -DARENA_DEBUG"
|
|
export PYZMQ=true
|
|
export RUN_INTEGRATIONTESTS=false
|
|
elif [ "$BUILD_TARGET" = "linux64_nowallet" ]; then
|
|
export HOST=x86_64-unknown-linux-gnu
|
|
export DEP_OPTS="NO_WALLET=1"
|
|
export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
|
|
elif [ "$BUILD_TARGET" = "linux64_release" ]; then
|
|
export HOST=x86_64-unknown-linux-gnu
|
|
export DEP_OPTS="NO_UPNP=1"
|
|
export BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports"
|
|
export PYZMQ=true
|
|
elif [ "$BUILD_TARGET" = "mac" ]; then
|
|
export HOST=x86_64-apple-darwin14
|
|
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --disable-miner"
|
|
export OSX_SDK=10.11
|
|
export GOAL="all deploy"
|
|
export RUN_UNITTESTS=false
|
|
export RUN_INTEGRATIONTESTS=false
|
|
fi
|