aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml67
1 files changed, 45 insertions, 22 deletions
diff --git a/.travis.yml b/.travis.yml
index fbc81b2614..1598813ed2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,6 +25,8 @@
# [1] https://docs.travis-ci.com/user/caching/#build-phases
# [2] https://docs.travis-ci.com/user/customizing-the-build#build-timeouts
+version: ~> 1.0
+
dist: xenial
os: linux
language: minimal
@@ -35,9 +37,7 @@ cache:
- $TRAVIS_BUILD_DIR/depends/built
- $TRAVIS_BUILD_DIR/depends/sdk-sources
- $TRAVIS_BUILD_DIR/ci/scratch/.ccache
- # macOS
- - $HOME/Library/Caches/Homebrew
- - /usr/local/Homebrew
+ - $TRAVIS_BUILD_DIR/releases/$HOST
before_cache:
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi
stages:
@@ -46,7 +46,6 @@ stages:
env:
global:
- CI_RETRY_EXE="travis_retry"
- - CI_WAIT="while sleep 500; do echo .; done"
- CACHE_ERR_MSG="Error! Initial build successful, but not enough time remains to run later build stages and tests. See https://docs.travis-ci.com/user/customizing-the-build#build-timeouts . Please manually re-run this job by using the travis restart button. The next run should not time out because the build cache has been saved."
before_install:
- set -o errexit; source ./ci/test/00_setup_env.sh
@@ -71,7 +70,7 @@ jobs:
- stage: lint
name: 'lint'
env:
- cache: false
+ cache: pip
language: python
python: '3.5' # Oldest supported version according to doc/dependencies.md
install:
@@ -83,17 +82,19 @@ jobs:
- stage: test
name: 'ARM [GOAL: install] [buster] [unit tests, functional tests]'
- arch: arm64
+ arch: arm64 # Can disable QEMU_USER_CMD and run the tests natively without qemu
env: >-
FILE_ENV="./ci/test/00_setup_env_arm.sh"
- QEMU_USER_CMD="" # Can run the tests natively without qemu
+ QEMU_USER_CMD=""
- - stage: test
- name: 'S390x [GOAL: install] [buster] [unit tests, functional tests]'
- arch: s390x
- env: >-
- FILE_ENV="./ci/test/00_setup_env_s390x.sh"
- QEMU_USER_CMD="" # Can run the tests natively without qemu
+# s390 build was disabled temporarily because of disk space issues on the Travis VM
+#
+# - stage: test
+# name: 'S390x [GOAL: install] [buster] [unit tests, functional tests]'
+# arch: s390x # Can disable QEMU_USER_CMD and run the tests natively without qemu
+# env: >-
+# FILE_ENV="./ci/test/00_setup_env_s390x.sh"
+# QEMU_USER_CMD=""
- stage: test
name: 'Win64 [GOAL: deploy] [unit tests, no gui, no functional tests]'
@@ -106,15 +107,16 @@ jobs:
FILE_ENV="./ci/test/00_setup_env_i686_centos.sh"
- stage: test
- name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 dev package and some depends packages] [unsigned char]'
+ name: 'x86_64 Linux [GOAL: install] [bionic] [C++17, previous releases, uses qt5 dev package and some depends packages] [unsigned char]'
env: >-
FILE_ENV="./ci/test/00_setup_env_native_qt5.sh"
- stage: test
- name: 'x86_64 Linux [GOAL: install] [xenial] [no depends, only system libs, sanitizers: thread (TSan), no wallet]'
+ name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: thread (TSan), no wallet]'
+ # Not enough memory on travis machines, so feature_block is excluded for now
env: >-
+ TEST_RUNNER_EXTRA="--exclude feature_block"
FILE_ENV="./ci/test/00_setup_env_native_tsan.sh"
- TEST_RUNNER_EXTRA="--exclude feature_block" # Not enough memory on travis machines
- stage: test
name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]'
@@ -122,14 +124,15 @@ jobs:
FILE_ENV="./ci/test/00_setup_env_native_asan.sh"
- stage: test
- name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, valgrind]'
+ name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: fuzzer,address,undefined]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_native_valgrind.sh"
+ FILE_ENV="./ci/test/00_setup_env_native_fuzz.sh"
- stage: test
- name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: fuzzer,address,undefined]'
+ name: 'x86_64 Linux [GOAL: install] [bionic] [multiprocess]'
+ if: type != pull_request OR commit_message =~ /depends:|multiprocess:/ # Skip on non-depends, non-multiprocess PRs
env: >-
- FILE_ENV="./ci/test/00_setup_env_native_fuzz.sh"
+ FILE_ENV="./ci/test/00_setup_env_native_multiprocess.sh"
- stage: test
name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]'
@@ -145,8 +148,28 @@ jobs:
name: 'macOS 10.14 native [GOAL: install] [GUI] [no depends]'
os: osx
# Use the most recent version:
- # Xcode 11.2.1, macOS 10.14, JDK 13.0.1, SDK 10.15
+ # Xcode 11.3.1, macOS 10.14, SDK 10.15
# https://docs.travis-ci.com/user/reference/osx/#macos-version
- osx_image: xcode11.2
+ osx_image: xcode11.3
+ cache:
+ directories:
+ - $TRAVIS_BUILD_DIR/ci/scratch/.ccache
+ - $TRAVIS_BUILD_DIR/releases/$HOST
+ - $HOME/Library/Caches/Homebrew
+ - /usr/local/Homebrew
+ addons:
+ homebrew:
+ packages:
+ - libtool
+ - berkeley-db4
+ - boost
+ - miniupnpc
+ - qt
+ - qrencode
+ - python3
+ - ccache
+ - zeromq
env: >-
+ DANGER_RUN_CI_ON_HOST=true
+ CI_USE_APT_INSTALL=no
FILE_ENV="./ci/test/00_setup_env_mac_host.sh"