|
25 | 25 | # [1] https://docs.travis-ci.com/user/caching/#build-phases |
26 | 26 | # [2] https://docs.travis-ci.com/user/customizing-the-build#build-timeouts |
27 | 27 |
|
| 28 | +version: ~> 1.0 |
| 29 | + |
28 | 30 | dist: xenial |
29 | 31 | os: linux |
30 | 32 | language: minimal |
| 33 | +arch: amd64 |
31 | 34 | cache: |
32 | 35 | ccache: true |
33 | 36 | directories: |
34 | 37 | - $TRAVIS_BUILD_DIR/depends/built |
35 | 38 | - $TRAVIS_BUILD_DIR/depends/sdk-sources |
36 | 39 | - $TRAVIS_BUILD_DIR/ci/scratch/.ccache |
| 40 | + - $TRAVIS_BUILD_DIR/releases/$HOST |
| 41 | +before_cache: |
| 42 | + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi |
37 | 43 | stages: |
38 | 44 | - lint |
39 | 45 | - test |
40 | | - - extended-lint |
41 | 46 | env: |
42 | 47 | global: |
43 | 48 | - CI_RETRY_EXE="travis_retry" |
44 | | - - 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." |
| 49 | + - CI_WAIT="while sleep 500; do echo .; done" |
| 50 | + - 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." |
45 | 51 | before_install: |
46 | 52 | - set -o errexit; source ./ci/test/00_setup_env.sh |
47 | 53 | - set -o errexit; source ./ci/test/03_before_install.sh |
@@ -75,66 +81,89 @@ jobs: |
75 | 81 | script: |
76 | 82 | - set -o errexit; source ./ci/lint/06_script.sh |
77 | 83 |
|
78 | | - - stage: extended-lint |
79 | | - name: 'extended lint [runtime >= 60 seconds]' |
80 | | - env: |
81 | | - cache: false |
82 | | - language: python |
83 | | - python: '3.5' |
84 | | - install: |
85 | | - - set -o errexit; source ./ci/extended_lint/04_install.sh |
86 | | - before_script: |
87 | | - - set -o errexit; source ./ci/lint/05_before_script.sh |
88 | | - script: |
89 | | - - set -o errexit; source ./ci/extended_lint/06_script.sh |
90 | | - |
91 | 84 | - stage: test |
92 | | - name: 'ARM [GOAL: install] [no unit or functional tests]' |
| 85 | + name: 'ARM [GOAL: install] [buster] [unit tests, functional tests]' |
| 86 | + arch: arm64 # Can disable QEMU_USER_CMD and run the tests natively without qemu |
93 | 87 | env: >- |
94 | 88 | FILE_ENV="./ci/test/00_setup_env_arm.sh" |
| 89 | + QEMU_USER_CMD="" |
95 | 90 |
|
96 | | - - stage: test |
97 | | - name: 'Win64 [GOAL: deploy] [no gui or functional tests]' |
98 | | - env: >- |
99 | | - FILE_ENV="./ci/test/00_setup_env_win64.sh" |
| 91 | +# s390 build was disabled temporarily because of disk space issues on the Travis VM |
| 92 | +# |
| 93 | +# - stage: test |
| 94 | +# name: 'S390x [GOAL: install] [buster] [unit tests, functional tests]' |
| 95 | +# arch: s390x # Can disable QEMU_USER_CMD and run the tests natively without qemu |
| 96 | +# env: >- |
| 97 | +# FILE_ENV="./ci/test/00_setup_env_s390x.sh" |
| 98 | +# QEMU_USER_CMD="" |
100 | 99 |
|
101 | 100 | - stage: test |
102 | | - name: '32-bit + dash [GOAL: install] [GUI: BIP70 enabled]' |
| 101 | + name: 'Win64 [GOAL: deploy] [unit tests, no gui, no functional tests]' |
103 | 102 | env: >- |
104 | | - FILE_ENV="./ci/test/00_setup_env_i686.sh" |
| 103 | + FILE_ENV="./ci/test/00_setup_env_win64.sh" |
105 | 104 |
|
106 | 105 | - stage: test |
107 | | - name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 dev package instead of depends Qt to speed up build and avoid timeout] [unsigned char]' |
| 106 | + name: '32-bit + dash [GOAL: install] [CentOS 7] [gui]' |
108 | 107 | env: >- |
109 | | - FILE_ENV="./ci/test/00_setup_env_amd64_qt5.sh" |
| 108 | + FILE_ENV="./ci/test/00_setup_env_i686_centos.sh" |
110 | 109 |
|
111 | 110 | - stage: test |
112 | | - name: 'x86_64 Linux [GOAL: install] [trusty] [no functional tests, no depends, only system libs]' |
| 111 | + name: 'x86_64 Linux [GOAL: install] [bionic] [previous releases, uses qt5 dev package and some depends packages] [unsigned char]' |
113 | 112 | env: >- |
114 | | - FILE_ENV="./ci/test/00_setup_env_amd64_trusty.sh" |
| 113 | + FILE_ENV="./ci/test/00_setup_env_native_qt5.sh" |
115 | 114 |
|
116 | 115 | - stage: test |
117 | 116 | name: 'x86_64 Linux [GOAL: install] [xenial] [no depends, only system libs, sanitizers: thread (TSan), no wallet]' |
118 | 117 | env: >- |
119 | | - FILE_ENV="./ci/test/00_setup_env_amd64_tsan.sh" |
| 118 | + FILE_ENV="./ci/test/00_setup_env_native_tsan.sh" |
120 | 119 | TEST_RUNNER_EXTRA="--exclude feature_block" # Not enough memory on travis machines |
121 | 120 |
|
122 | 121 | - stage: test |
123 | 122 | name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]' |
124 | 123 | env: >- |
125 | | - FILE_ENV="./ci/test/00_setup_env_amd64_asan.sh" |
| 124 | + FILE_ENV="./ci/test/00_setup_env_native_asan.sh" |
126 | 125 |
|
127 | 126 | - stage: test |
128 | | - name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: fuzzer,address,undefined]' |
| 127 | + name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: fuzzer,address,undefined]' |
129 | 128 | env: >- |
130 | | - FILE_ENV="./ci/test/00_setup_env_amd64_fuzz.sh" |
| 129 | + FILE_ENV="./ci/test/00_setup_env_native_fuzz.sh" |
131 | 130 |
|
132 | 131 | - stage: test |
133 | 132 | name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]' |
134 | 133 | env: >- |
135 | | - FILE_ENV="./ci/test/00_setup_env_amd64_nowallet.sh" |
| 134 | + FILE_ENV="./ci/test/00_setup_env_native_nowallet.sh" |
136 | 135 |
|
137 | 136 | - stage: test |
138 | | - name: 'macOS 10.10 [GOAL: deploy] [no functional tests]' |
| 137 | + name: 'macOS 10.12 [GOAL: deploy] [no functional tests]' |
139 | 138 | env: >- |
140 | 139 | FILE_ENV="./ci/test/00_setup_env_mac.sh" |
| 140 | +
|
| 141 | + - stage: test |
| 142 | + name: 'macOS 10.14 native [GOAL: install] [GUI] [no depends]' |
| 143 | + os: osx |
| 144 | + # Use the most recent version: |
| 145 | + # Xcode 11.3.1, macOS 10.14, SDK 10.15 |
| 146 | + # https://docs.travis-ci.com/user/reference/osx/#macos-version |
| 147 | + osx_image: xcode11.3 |
| 148 | + cache: |
| 149 | + directories: |
| 150 | + - $TRAVIS_BUILD_DIR/ci/scratch/.ccache |
| 151 | + - $TRAVIS_BUILD_DIR/releases/$HOST |
| 152 | + - $HOME/Library/Caches/Homebrew |
| 153 | + - /usr/local/Homebrew |
| 154 | + addons: |
| 155 | + homebrew: |
| 156 | + packages: |
| 157 | + - libtool |
| 158 | + - berkeley-db4 |
| 159 | + - boost |
| 160 | + - miniupnpc |
| 161 | + - qt |
| 162 | + - qrencode |
| 163 | + - python3 |
| 164 | + - ccache |
| 165 | + - zeromq |
| 166 | + env: >- |
| 167 | + DANGER_RUN_CI_ON_HOST=true |
| 168 | + CI_USE_APT_INSTALL=no |
| 169 | + FILE_ENV="./ci/test/00_setup_env_mac_host.sh" |
0 commit comments