Skip to content

Commit fa21737

Browse files
author
MarcoFalke
committed
ci: Add environment files for all settings
1 parent 1bf2ff2 commit fa21737

14 files changed

+166
-65
lines changed

.travis.yml

Lines changed: 10 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -91,101 +91,49 @@ jobs:
9191
- stage: test
9292
name: 'ARM [GOAL: install] [no unit or functional tests]'
9393
env: >-
94-
HOST=arm-linux-gnueabihf
95-
PACKAGES="python3 g++-arm-linux-gnueabihf"
96-
RUN_UNIT_TESTS=false
97-
RUN_FUNCTIONAL_TESTS=false
98-
GOAL="install"
99-
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
100-
# This could be removed once the ABI change warning does not show up by default
101-
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"
94+
FILE_ENV="./ci/test/00_setup_env_arm.sh"
10295
10396
- stage: test
10497
name: 'Win64 [GOAL: deploy] [no gui or functional tests]'
10598
env: >-
106-
HOST=x86_64-w64-mingw32
107-
PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64"
108-
RUN_FUNCTIONAL_TESTS=false
109-
GOAL="deploy"
110-
BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests"
99+
FILE_ENV="./ci/test/00_setup_env_win64.sh"
111100
112101
- stage: test
113102
name: '32-bit + dash [GOAL: install] [GUI: no BIP70]'
114103
env: >-
115-
HOST=i686-pc-linux-gnu
116-
PACKAGES="g++-multilib python3-zmq"
117-
GOAL="install"
118-
BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --disable-bip70 --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++"
119-
CONFIG_SHELL="/bin/dash"
104+
FILE_ENV="./ci/test/00_setup_env_i686.sh"
120105
121106
- stage: test
122107
name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 dev package instead of depends Qt to speed up build and avoid timeout] [unsigned char]'
123108
env: >-
124-
HOST=x86_64-unknown-linux-gnu
125-
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev"
126-
DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1"
127-
TEST_RUNNER_EXTRA="--coverage --extended --exclude feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash
128-
GOAL="install"
129-
BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CFLAGS=\"-g0 -O2 -funsigned-char\" CXXFLAGS=\"-g0 -O2 -funsigned-char\""
109+
FILE_ENV="./ci/test/00_setup_env_amd64_qt5.sh"
130110
131111
- stage: test
132112
name: 'x86_64 Linux [GOAL: install] [trusty] [no functional tests, no depends, only system libs]'
133113
env: >-
134-
HOST=x86_64-unknown-linux-gnu
135-
DOCKER_NAME_TAG=ubuntu:14.04
136-
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libicu-dev libpng-dev libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.1++-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
137-
NO_DEPENDS=1
138-
RUN_FUNCTIONAL_TESTS=false
139-
GOAL="install"
140-
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=no"
114+
FILE_ENV="./ci/test/00_setup_env_amd64_trusty.sh"
141115
142116
- stage: test
143117
name: 'x86_64 Linux [GOAL: install] [xenial] [no depends, only system libs, sanitizers: thread (TSan), no wallet]'
144118
env: >-
145-
HOST=x86_64-unknown-linux-gnu
146-
DOCKER_NAME_TAG=ubuntu:16.04
147-
PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
148-
NO_DEPENDS=1
149-
GOAL="install"
150-
BITCOIN_CONFIG="--enable-zmq --disable-wallet --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=thread --disable-hardening --disable-asm CC=clang CXX=clang++"
119+
FILE_ENV="./ci/test/00_setup_env_amd64_tsan.sh"
151120
152121
- stage: test
153122
name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]'
154123
env: >-
155-
HOST=x86_64-unknown-linux-gnu
156-
PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
157-
NO_DEPENDS=1
158-
GOAL="install"
159-
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=address,integer,undefined CC=clang CXX=clang++"
124+
FILE_ENV="./ci/test/00_setup_env_amd64_asan.sh"
160125
161126
- stage: test
162127
name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: fuzzer,address]'
163128
env: >-
164-
HOST=x86_64-unknown-linux-gnu
165-
PACKAGES="clang llvm python3 libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev"
166-
NO_DEPENDS=1
167-
RUN_UNIT_TESTS=false
168-
RUN_FUNCTIONAL_TESTS=false
169-
RUN_FUZZ_TESTS=true
170-
GOAL="install"
171-
BITCOIN_CONFIG="--enable-fuzz --with-sanitizers=fuzzer,address CC=clang CXX=clang++"
129+
FILE_ENV="./ci/test/00_setup_env_amd64_fuzz.sh"
172130
173131
- stage: test
174132
name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]'
175133
env: >-
176-
HOST=x86_64-unknown-linux-gnu
177-
PACKAGES="python3-zmq"
178-
DEP_OPTS="NO_WALLET=1"
179-
GOAL="install"
180-
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
134+
FILE_ENV="./ci/test/00_setup_env_amd64_nowallet.sh"
181135
182136
- stage: test
183137
name: 'macOS 10.10 [GOAL: deploy] [no functional tests]'
184138
env: >-
185-
HOST=x86_64-apple-darwin14
186-
PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools"
187-
OSX_SDK=10.11
188-
RUN_UNIT_TESTS=false
189-
RUN_FUNCTIONAL_TESTS=false
190-
GOAL="deploy"
191-
BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror"
139+
FILE_ENV="./ci/test/00_setup_env_mac.sh"

ci/README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,17 @@ requires `docker` to be installed. To install all requirements on Ubuntu, run
1515
sudo apt install docker.io ccache bash git
1616
```
1717

18-
To run the test stage,
18+
To run the default test stage,
1919

2020
```
2121
./ci/test_run_all.sh
2222
```
2323

24+
To run the test stage with a specific configuration,
25+
26+
```
27+
FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh
28+
```
29+
2430
Be aware that the tests will be build and run in-place, so please run at your own risk.
2531
If the repository is not a fresh git clone, you might have to clean files from previous builds or test runs first.

ci/test/00_setup_env.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,10 @@ export GOAL=${GOAL:-install}
3131
export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_BUILD_DIR}/qa-assets}
3232
export PATH=${BASE_ROOT_DIR}/ci/retry:$PATH
3333
export CI_RETRY_EXE=${CI_RETRY_EXE:retry}
34+
35+
echo "Setting specific values in env"
36+
if [ -n "${FILE_ENV}" ]; then
37+
set -o errexit;
38+
# shellcheck disable=SC1090
39+
source "${FILE_ENV}"
40+
fi

ci/test/00_setup_env_amd64_asan.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export HOST=x86_64-unknown-linux-gnu
10+
export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
11+
export NO_DEPENDS=1
12+
export GOAL="install"
13+
export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=address,integer,undefined CC=clang CXX=clang++"

ci/test/00_setup_env_amd64_fuzz.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export HOST=x86_64-unknown-linux-gnu
10+
export PACKAGES="clang llvm python3 libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev"
11+
export NO_DEPENDS=1
12+
export RUN_UNIT_TESTS=false
13+
export RUN_FUNCTIONAL_TESTS=false
14+
export RUN_FUZZ_TESTS=true
15+
export GOAL="install"
16+
export BITCOIN_CONFIG="--enable-fuzz --with-sanitizers=fuzzer,address CC=clang CXX=clang++"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export HOST=x86_64-unknown-linux-gnu
10+
export PACKAGES="python3-zmq"
11+
export DEP_OPTS="NO_WALLET=1"
12+
export GOAL="install"
13+
export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"

ci/test/00_setup_env_amd64_qt5.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export HOST=x86_64-unknown-linux-gnu
10+
export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev"
11+
export DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1"
12+
export TEST_RUNNER_EXTRA="--coverage --extended --exclude feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash
13+
export GOAL="install"
14+
export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CFLAGS=\"-g0 -O2 -funsigned-char\" CXXFLAGS=\"-g0 -O2 -funsigned-char\""

ci/test/00_setup_env_amd64_trusty.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export HOST=x86_64-unknown-linux-gnu
10+
export DOCKER_NAME_TAG=ubuntu:14.04
11+
export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libicu-dev libpng-dev libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.1++-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
12+
export NO_DEPENDS=1
13+
export RUN_FUNCTIONAL_TESTS=false
14+
export GOAL="install"
15+
export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=no"

ci/test/00_setup_env_amd64_tsan.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export HOST=x86_64-unknown-linux-gnu
10+
export DOCKER_NAME_TAG=ubuntu:16.04
11+
export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
12+
export NO_DEPENDS=1
13+
export GOAL="install"
14+
export BITCOIN_CONFIG="--enable-zmq --disable-wallet --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=thread --disable-hardening --disable-asm CC=clang CXX=clang++"

ci/test/00_setup_env_arm.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export HOST=arm-linux-gnueabihf
10+
export PACKAGES="python3 g++-arm-linux-gnueabihf"
11+
export RUN_UNIT_TESTS=false
12+
export RUN_FUNCTIONAL_TESTS=false
13+
export GOAL="install"
14+
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
15+
# This could be removed once the ABI change warning does not show up by default
16+
export BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"

0 commit comments

Comments
 (0)