aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml92
1 files changed, 41 insertions, 51 deletions
diff --git a/.travis.yml b/.travis.yml
index f59c7fc7e8..fbc81b2614 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,20 +28,26 @@
dist: xenial
os: linux
language: minimal
+arch: amd64
cache:
ccache: true
directories:
- $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
+before_cache:
+ - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi
stages:
- lint
- test
- - extended-lint
env:
global:
- CI_RETRY_EXE="travis_retry"
- - CACHE_ERR_MSG="Error! Initial build successful, but not enough time remains to run later build stages and tests. Please manually re-run this job by using the travis restart button or asking a bitcoin maintainer to restart. The next run should not time out because the build cache has been saved."
+ - 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
- set -o errexit; source ./ci/test/03_before_install.sh
@@ -75,88 +81,72 @@ jobs:
script:
- set -o errexit; source ./ci/lint/06_script.sh
- - stage: extended-lint
- name: 'extended lint [runtime >= 60 seconds]'
- env:
- cache: false
- language: python
- python: '3.5'
- install:
- - set -o errexit; source ./ci/extended_lint/04_install.sh
- before_script:
- - set -o errexit; source ./ci/lint/05_before_script.sh
- script:
- - set -o errexit; source ./ci/extended_lint/06_script.sh
-
- - stage: extended-lint
- name: 'lint macOS 10.12 (compat)'
- os: osx
- # Use the earliest macOS that can build our lint dependencies:
- # Xcode 8.3.3, macOS 10.12, JDK 1.8.0_112-b16
- # https://docs.travis-ci.com/user/reference/osx/#OS-X-Version
- osx_image: xcode8.3
- # TODO: if you're updating osx_image, try using "rvm:" to supply the
- # version of ruby required by homebrew. Despite this "rvm:" declaration,
- # brew update installs ruby 2.3.7 as its first action.
- language: ruby
- rvm:
- - 2.3.7
- env:
- cache: false
- install:
- - set -o errexit; source ./ci/lint/04_install.sh
- before_script:
- - set -o errexit; source ./ci/lint/05_before_script.sh
- script:
- - set -o errexit; source ./ci/lint/06_script.sh
-
- stage: test
- name: 'ARM [GOAL: install] [unit tests, no functional tests]'
+ name: 'ARM [GOAL: install] [buster] [unit tests, functional tests]'
+ arch: arm64
env: >-
FILE_ENV="./ci/test/00_setup_env_arm.sh"
+ QEMU_USER_CMD="" # Can run the tests natively without qemu
- stage: test
- name: 'Win64 [GOAL: deploy] [unit tests, no gui, no functional tests]'
+ name: 'S390x [GOAL: install] [buster] [unit tests, functional tests]'
+ arch: s390x
env: >-
- FILE_ENV="./ci/test/00_setup_env_win64.sh"
+ FILE_ENV="./ci/test/00_setup_env_s390x.sh"
+ QEMU_USER_CMD="" # Can run the tests natively without qemu
- stage: test
- name: '32-bit + dash [GOAL: install] [GUI: BIP70 enabled]'
+ name: 'Win64 [GOAL: deploy] [unit tests, no gui, no functional tests]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_i686.sh"
+ FILE_ENV="./ci/test/00_setup_env_win64.sh"
- stage: test
- name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 dev package instead of depends Qt to speed up build and avoid timeout] [unsigned char]'
+ name: '32-bit + dash [GOAL: install] [CentOS 7] [gui]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_amd64_qt5.sh"
+ FILE_ENV="./ci/test/00_setup_env_i686_centos.sh"
- stage: test
- name: 'x86_64 Linux [GOAL: install] [trusty] [no functional tests, no depends, only system libs]'
+ name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 dev package and some depends packages] [unsigned char]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_amd64_trusty.sh"
+ 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]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_amd64_tsan.sh"
+ 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]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_amd64_asan.sh"
+ 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]'
+ env: >-
+ FILE_ENV="./ci/test/00_setup_env_native_valgrind.sh"
- stage: test
name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: fuzzer,address,undefined]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_amd64_fuzz.sh"
+ FILE_ENV="./ci/test/00_setup_env_native_fuzz.sh"
- stage: test
name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]'
env: >-
- FILE_ENV="./ci/test/00_setup_env_amd64_nowallet.sh"
+ FILE_ENV="./ci/test/00_setup_env_native_nowallet.sh"
- stage: test
- name: 'macOS 10.10 [GOAL: deploy] [no functional tests]'
+ name: 'macOS 10.12 [GOAL: deploy] [no functional tests]'
env: >-
FILE_ENV="./ci/test/00_setup_env_mac.sh"
+
+ - stage: test
+ 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
+ # https://docs.travis-ci.com/user/reference/osx/#macos-version
+ osx_image: xcode11.2
+ env: >-
+ FILE_ENV="./ci/test/00_setup_env_mac_host.sh"