@@ -3,80 +3,136 @@ dist: trusty
3
3
os : linux
4
4
language : minimal
5
5
cache :
6
+ ccache : true
6
7
directories :
7
- - depends/built
8
- - depends/sdk-sources
9
- - $HOME/.ccache
8
+ - depends/built
9
+ - depends/sdk-sources
10
+ - $HOME/.ccache
11
+ stages :
12
+ - lint
13
+ - test
10
14
env :
11
15
global :
12
16
- MAKEJOBS=-j3
13
- - RUN_TESTS=false
14
- - CHECK_DOC=0
17
+ - RUN_UNIT_TESTS=true
18
+ - RUN_FUNCTIONAL_TESTS=true
19
+ - RUN_BENCH=false # Set to true for any one job that has debug enabled, to quickly check bench is not crashing or hitting assertions
20
+ - DOCKER_NAME_TAG=ubuntu:18.04
15
21
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
16
22
- CCACHE_SIZE=100M
17
23
- CCACHE_TEMPDIR=/tmp/.ccache-temp
18
24
- CCACHE_COMPRESS=1
25
+ - CCACHE_DIR=$HOME/.ccache
19
26
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
20
27
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
21
- - PYTHON_DEBUG=1
22
28
- WINEDEBUG=fixme-all
23
- matrix :
29
+ - DOCKER_PACKAGES="build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache"
30
+ before_install :
31
+ - set -o errexit; source .travis/test_03_before_install.sh
32
+ install :
33
+ - set -o errexit; source .travis/test_04_install.sh
34
+ before_script :
35
+ - set -o errexit; source .travis/test_05_before_script.sh
36
+ script :
37
+ - set -o errexit; source .travis/test_06_script.sh
38
+ after_script :
39
+ - echo $TRAVIS_COMMIT_RANGE
40
+ - echo $TRAVIS_COMMIT_LOG
41
+ jobs :
42
+ include :
43
+ # lint stage
44
+ - stage : lint
45
+ env :
46
+ sudo : false
47
+ cache : false
48
+ language : python
49
+ python : ' 3.6'
50
+ install :
51
+ - set -o errexit; source .travis/lint_04_install.sh
52
+ before_script :
53
+ - set -o errexit; source .travis/lint_05_before_script.sh
54
+ script :
55
+ - set -o errexit; source .travis/lint_06_script.sh
24
56
# ARM
25
- - HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
57
+ - stage : test
58
+ env : >-
59
+ HOST=arm-linux-gnueabihf
60
+ PACKAGES="g++-arm-linux-gnueabihf"
61
+ DEP_OPTS="NO_QT=1"
62
+ RUN_UNIT_TESTS=false
63
+ RUN_FUNCTIONAL_TESTS=false
64
+ GOAL="install"
65
+ # -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
66
+ # This could be removed once the ABI change warning does not show up by default
67
+ BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"
26
68
# Win32
27
- - HOST=i686-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-i686 wine1.6 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
28
- # 32-bit + dash
29
- - HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc python3-zmq" DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash"
69
+ - stage : test
70
+ env : >-
71
+ HOST=i686-w64-mingw32
72
+ DPKG_ADD_ARCH="i386"
73
+ DEP_OPTS="NO_QT=1"
74
+ PACKAGES="python3 nsis g++-mingw-w64-i686 wine-binfmt wine32"
75
+ GOAL="install"
76
+ BITCOIN_CONFIG="--enable-reduce-exports"
30
77
# Win64
31
- - HOST=x86_64-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine1.6 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
78
+ - stage : test
79
+ env : >-
80
+ HOST=x86_64-w64-mingw32
81
+ DEP_OPTS="NO_QT=1"
82
+ PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64"
83
+ GOAL="install"
84
+ BITCOIN_CONFIG="--enable-reduce-exports"
85
+ # 32-bit + dash
86
+ - stage : test
87
+ env : >-
88
+ HOST=i686-pc-linux-gnu
89
+ PACKAGES="g++-multilib python3-zmq"
90
+ DEP_OPTS="NO_QT=1"
91
+ GOAL="install"
92
+ BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++"
93
+ CONFIG_SHELL="/bin/dash"
32
94
# x86_64 Linux (uses qt5 dev package instead of depends Qt to speed up build and avoid timeout)
33
- - HOST=x86_64-unknown-linux-gnu PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER"
95
+ - stage : test
96
+ env : >-
97
+ HOST=x86_64-unknown-linux-gnu
98
+ PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev"
99
+ DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1"
100
+ GOAL="install"
101
+ BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CXXFLAGS=\"-g0 -O2\""
102
+ # x86_64 Linux (no depends, only system libs)
103
+ - stage : test
104
+ env : >-
105
+ HOST=x86_64-unknown-linux-gnu
106
+ PACKAGES="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"
107
+ NO_DEPENDS=1
108
+ GOAL="install"
109
+ BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER"
110
+ # x86_64 Linux (sanitizers)
111
+ - stage : test
112
+ env : >-
113
+ HOST=x86_64-unknown-linux-gnu
114
+ PACKAGES="clang 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"
115
+ NO_DEPENDS=1
116
+ RUN_BENCH=true
117
+ RUN_FUNCTIONAL_TESTS=false # Disabled for now, can be combined with the other x86_64 linux NO_DEPENDS job when functional tests pass the sanitizers
118
+ GOAL="install"
119
+ BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=undefined CC=clang CXX=clang++"
34
120
# x86_64 Linux, No wallet
35
- - HOST=x86_64-unknown-linux-gnu PACKAGES="python3" DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
121
+ - stage : test
122
+ env : >-
123
+ HOST=x86_64-unknown-linux-gnu
124
+ PACKAGES="python3"
125
+ DEP_OPTS="NO_WALLET=1"
126
+ GOAL="install"
127
+ BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
36
128
# Cross-Mac
37
- - HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" OSX_SDK=10.11 GOAL="deploy"
129
+ - stage : test
130
+ env : >-
131
+ HOST=x86_64-apple-darwin14
132
+ PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python3-setuptools-git"
133
+ OSX_SDK=10.11
134
+ RUN_UNIT_TESTS=false
135
+ RUN_FUNCTIONAL_TESTS=false
136
+ GOAL="all deploy"
137
+ BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror"
38
138
39
- before_install :
40
- - export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
41
- install :
42
- - if [ -n "$DPKG_ADD_ARCH" ]; then sudo dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
43
- - if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
44
- - if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
45
- before_script :
46
- - if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then contrib/devtools/commit-script-check.sh $TRAVIS_COMMIT_RANGE; fi
47
- - unset CC; unset CXX
48
- - if [ "$CHECK_DOC" = 1 ]; then contrib/devtools/check-doc.py; fi
49
- - mkdir -p depends/SDKs depends/sdk-sources
50
- - if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
51
- - if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
52
- - make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
53
- script :
54
- - if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi
55
- - if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then git fetch --unshallow; fi
56
- - if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then contrib/verify-commits/verify-commits.sh; fi
57
- - export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
58
- - if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
59
- - OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
60
- - BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
61
- - depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
62
- - test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
63
- - mkdir build && cd build
64
- - ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
65
- - make distdir VERSION=$HOST
66
- - cd bitzeny-$HOST
67
- - ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
68
- - make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
69
- - export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
70
- - export RUN_TESTS=false # TODO: remove this line if broken tests are fixed
71
- - if [ "$RUN_TESTS" = "true" ]; then travis_wait 30 make $MAKEJOBS check VERBOSE=1; fi
72
- - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then extended="--extended --exclude pruning,dbcrash"; fi
73
- - if [ "$RUN_TESTS" = "true" ]; then test/functional/test_runner.py --coverage --quiet ${extended}; fi
74
- after_success :
75
- - AUTHOR=`git log -1 | grep 'Author:' | awk '{$1="";$NF="";print $0}' | sed -e 's/^[ ]*//g'`
76
- - test -n $DISCORD_WEBHOOK_URL && echo '{"embeds":[{"title":"['$TRAVIS_JOB_NUMBER':'$HOST'] Build '$TRAVIS_BUILD_NUMBER' succeeded","type":"rich","description":"[`'${TRAVIS_COMMIT:0:7}'`](https://github.com/'$TRAVIS_REPO_SLUG'/commit/'$TRAVIS_COMMIT') '$TRAVIS_COMMIT_MESSAGE' - '$AUTHOR'","url":"https://travis-ci.org/'$TRAVIS_REPO_SLUG'/builds/'$TRAVIS_BUILD_ID'","timestamp":"'`date --utc +%FT%TZ`'","color":2932302,"footer":{"text":"Travis CI"}}]}' | curl -A 'Travis CI' -H 'Content-Type:application/json' -d @- $DISCORD_WEBHOOK_URL
77
- after_failure :
78
- - AUTHOR=`git log -1 | grep 'Author:' | awk '{$1="";$NF="";print $0}' | sed -e 's/^[ ]*//g'`
79
- - test -n $DISCORD_WEBHOOK_URL && echo '{"embeds":[{"title":"['$TRAVIS_JOB_NUMBER':'$HOST'] Build '$TRAVIS_BUILD_NUMBER' failed","type":"rich","description":"[`'${TRAVIS_COMMIT:0:7}'`](https://github.com/'$TRAVIS_REPO_SLUG'/commit/'$TRAVIS_COMMIT') '$TRAVIS_COMMIT_MESSAGE' - '$AUTHOR'","url":"https://travis-ci.org/'$TRAVIS_REPO_SLUG'/builds/'$TRAVIS_BUILD_ID'","timestamp":"'`date --utc +%FT%TZ`'","color":13313073,"footer":{"text":"Travis CI"}}]}' | curl -A 'Travis CI' -H 'Content-Type:application/json' -d @- $DISCORD_WEBHOOK_URL
80
- after_script :
81
- - echo $TRAVIS_COMMIT_RANGE
82
- - echo $TRAVIS_COMMIT_LOG
0 commit comments