742ee21349
fa4bcaf82a
travis: Compile once on xenial (MarcoFalke)
Pull request description:
Currently we only build on bionic (since that is also the current gitian environment). However, building on the current and previous Ubuntu LTS should be supported with only system packages and without depends.
Tree-SHA512: bf5725cfb1be09220510d53010c7b7deb20051a9995e39fe5e83505c63db09ac877a41b896c97b253052fefea58ca0a9b6d9c5962a7ac4b258782c476d6ee7c0
142 lines
6.1 KiB
YAML
142 lines
6.1 KiB
YAML
sudo: required
|
|
dist: trusty
|
|
os: linux
|
|
language: minimal
|
|
cache:
|
|
ccache: true
|
|
directories:
|
|
- depends/built
|
|
- depends/sdk-sources
|
|
- $HOME/.ccache
|
|
stages:
|
|
- lint
|
|
- test
|
|
env:
|
|
global:
|
|
- MAKEJOBS=-j3
|
|
- RUN_UNIT_TESTS=true
|
|
- RUN_FUNCTIONAL_TESTS=true
|
|
- RUN_BENCH=false # Set to true for any one job that has debug enabled, to quickly check bench is not crashing or hitting assertions
|
|
- DOCKER_NAME_TAG=ubuntu:18.04
|
|
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
|
|
- CCACHE_SIZE=100M
|
|
- CCACHE_TEMPDIR=/tmp/.ccache-temp
|
|
- CCACHE_COMPRESS=1
|
|
- CCACHE_DIR=$HOME/.ccache
|
|
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
|
|
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
|
|
- WINEDEBUG=fixme-all
|
|
- DOCKER_PACKAGES="build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache"
|
|
before_install:
|
|
- set -o errexit; source .travis/test_03_before_install.sh
|
|
install:
|
|
- set -o errexit; source .travis/test_04_install.sh
|
|
before_script:
|
|
- set -o errexit; source .travis/test_05_before_script.sh
|
|
script:
|
|
- if [ $SECONDS -gt 1200 ]; then set +o errexit; echo "Travis early exit to cache current state"; false; else set -o errexit; source .travis/test_06_script.sh; fi
|
|
after_script:
|
|
- echo $TRAVIS_COMMIT_RANGE
|
|
- echo $TRAVIS_COMMIT_LOG
|
|
jobs:
|
|
include:
|
|
# lint stage
|
|
- stage: lint
|
|
env:
|
|
sudo: false
|
|
cache: false
|
|
language: python
|
|
python: '3.6'
|
|
install:
|
|
- set -o errexit; source .travis/lint_04_install.sh
|
|
before_script:
|
|
- set -o errexit; source .travis/lint_05_before_script.sh
|
|
script:
|
|
- set -o errexit; source .travis/lint_06_script.sh
|
|
# ARM
|
|
- stage: test
|
|
env: >-
|
|
HOST=arm-linux-gnueabihf
|
|
PACKAGES="python3 g++-arm-linux-gnueabihf"
|
|
RUN_UNIT_TESTS=false
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
GOAL="install"
|
|
# -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
|
|
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"
|
|
# Win32
|
|
- stage: test
|
|
env: >-
|
|
HOST=i686-w64-mingw32
|
|
DPKG_ADD_ARCH="i386"
|
|
PACKAGES="python3 nsis g++-mingw-w64-i686 wine-binfmt wine32"
|
|
GOAL="deploy"
|
|
BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests"
|
|
# Win64
|
|
- stage: test
|
|
env: >-
|
|
HOST=x86_64-w64-mingw32
|
|
PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64"
|
|
GOAL="deploy"
|
|
BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests"
|
|
# 32-bit + dash
|
|
- stage: test
|
|
env: >-
|
|
HOST=i686-pc-linux-gnu
|
|
PACKAGES="g++-multilib python3-zmq"
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++"
|
|
CONFIG_SHELL="/bin/dash"
|
|
# x86_64 Linux (uses qt5 dev package instead of depends Qt to speed up build and avoid timeout)
|
|
- stage: test
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev"
|
|
DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1"
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CXXFLAGS=\"-g0 -O2\""
|
|
# x86_64 Linux (xenial, no depends, only system libs)
|
|
- stage: test
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
DOCKER_NAME_TAG=ubuntu:16.04
|
|
PACKAGES="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"
|
|
NO_DEPENDS=1
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER"
|
|
# x86_64 Linux (no depends, only system libs)
|
|
- stage: test
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
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"
|
|
NO_DEPENDS=1
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER"
|
|
# x86_64 Linux (sanitizers)
|
|
- stage: test
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
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"
|
|
NO_DEPENDS=1
|
|
RUN_BENCH=true
|
|
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
|
|
GOAL="install"
|
|
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++"
|
|
# x86_64 Linux, No wallet
|
|
- stage: test
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
PACKAGES="python3-zmq"
|
|
DEP_OPTS="NO_WALLET=1"
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
|
|
# Cross-Mac
|
|
- stage: test
|
|
env: >-
|
|
HOST=x86_64-apple-darwin14
|
|
PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python3-setuptools-git"
|
|
OSX_SDK=10.11
|
|
RUN_UNIT_TESTS=false
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
GOAL="deploy"
|
|
BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror"
|