Mercurial > vim
comparison .travis.yml @ 17061:051a2f640a6e v8.1.1530
patch 8.1.1530: Travis config is not optimal
commit https://github.com/vim/vim/commit/f42397c395ec8ff2dffef914805b4d9cbf1d600b
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jun 14 20:47:49 2019 +0200
patch 8.1.1530: Travis config is not optimal
Problem: Travis config is not optimal.
Solution: Remove system conditions. Do not use excluding matrix. Cache OSX
results. (Ozaki Kiichi, closes #4521)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 14 Jun 2019 21:00:08 +0200 |
parents | eca47d76ad5a |
children | fceb0977275a |
comparison
equal
deleted
inserted
replaced
17060:98ca6505a354 | 17061:051a2f640a6e |
---|---|
1 language: c | 1 language: c |
2 dist: trusty | 2 |
3 | 3 anchors: |
4 os: | 4 envs: |
5 - osx | 5 - &tiny-nogui |
6 - linux | 6 BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
7 | 7 - &tiny |
8 compiler: | 8 BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
9 - clang | 9 - &small |
10 - gcc | 10 BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
11 | 11 - &normal |
12 env: | 12 BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no |
13 - &tiny-nogui | 13 - &linux-huge |
14 BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no | 14 BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
15 - &tiny | 15 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" |
16 BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no | 16 - &osx-huge # macOS build |
17 - &asan # ASAN build | 17 BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no |
18 BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" | 18 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" |
19 FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" | 19 - &unittests |
20 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" | 20 BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes |
21 - &linux-huge | 21 - &asan # ASAN build |
22 BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no | 22 SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" |
23 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" | 23 ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" |
24 - &unittests | 24 |
25 BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes | 25 linux: &linux |
26 - &normal | 26 os: linux |
27 BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no | 27 dist: trusty |
28 - &small | 28 addons: |
29 BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no | 29 apt: |
30 - &osx-huge # Mac OSX build | 30 sources: |
31 BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no | 31 # Need msgfmt 0.19.8 to be able to generate .desktop files |
32 "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" | 32 - sourceline: 'ppa:ricotz/toolchain' |
33 packages: | |
34 - autoconf | |
35 - clang | |
36 - lcov | |
37 - gettext | |
38 - libcanberra-dev | |
39 - libperl-dev | |
40 - python-dev | |
41 - python3-dev | |
42 - liblua5.2-dev | |
43 - lua5.2 | |
44 - ruby-dev | |
45 - tcl-dev | |
46 - cscope | |
47 - libgtk2.0-dev | |
48 - desktop-file-utils | |
49 before_install: | |
50 - rvm reset | |
51 # Remove /opt/python/3.x.x/bin from $PATH for using system python3. | |
52 # ("pyenv global system" doesn't seem to work.) | |
53 - | | |
54 if [[ "$(which python3)" =~ ^/opt/python/ ]]; then | |
55 export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/}) | |
56 fi | |
57 - | | |
58 if [[ "${COVERAGE}" = "yes" ]]; then | |
59 pip install --user cpp-coveralls | |
60 fi | |
61 # needed for https support for coveralls | |
62 # building cffi only works with gcc, not with clang | |
63 - | | |
64 if [[ "${COVERAGE}" = "yes" ]]; then | |
65 CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1 | |
66 fi | |
67 # Use llvm-cov instead of gcov when compiler is clang. | |
68 - | | |
69 if [[ "${CC}" = "clang" ]]; then | |
70 ln -sf "$(which llvm-cov)" /home/travis/bin/gcov | |
71 fi | |
72 before_script: | |
73 # Start virtual framebuffer to be able to test the GUI. Does not work on OS X. | |
74 - export DISPLAY=:99.0 | |
75 - sh -e /etc/init.d/xvfb start && sleep 3 | |
76 - sudo modprobe snd-dummy | |
77 - sudo usermod -a -G audio $USER | |
78 | |
79 osx: &osx | |
80 os: osx | |
81 addons: | |
82 homebrew: | |
83 packages: | |
84 - lua | |
85 update: true | |
86 cache: | |
87 directories: | |
88 - /usr/local/Homebrew/Library/Homebrew/vendor/ | |
89 - /usr/local/Homebrew/Library/Taps/ | |
90 before_install: | |
91 - rvm reset | |
92 # Lua is not installed on Travis OSX | |
93 - export LUA_PREFIX=/usr/local | |
94 | |
95 coverage: &coverage | |
96 - ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 latin-1 EUC-KR | |
97 - (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash)) | |
98 | |
99 asan_symbolize: &asan_symbolize | |
100 - | | |
101 while read log; do | |
102 asan_symbolize < "${log}" | |
103 done < <(find . -type f -name 'asan.*' -size +0) | |
33 | 104 |
34 sudo: false | 105 sudo: false |
106 | |
107 branches: | |
108 except: | |
109 - /^v[0-9]/ | |
110 | |
111 script: | |
112 - NPROC=$(getconf _NPROCESSORS_ONLN) | |
113 - set -o errexit | |
114 - echo -e "\\033[33;1mConfiguring Vim\\033[0m" && echo -en "travis_fold:start:configure\\r\\033[0K" | |
115 - | | |
116 if [[ "${CHECK_AUTOCONF}" = "yes" ]] && [[ "${CC}" = "gcc" ]]; then | |
117 make -C src autoconf | |
118 fi | |
119 - | | |
120 if [[ -n "${SHADOWOPT}" ]]; then | |
121 make -C src shadow | |
122 fi | |
123 # "./configure" changes its working directory into "$SRCDIR". | |
124 - ./configure --with-features=${FEATURES} ${CONFOPT} --enable-fail-if-missing | |
125 - echo -en "travis_fold:end:configure\\r\\033[0K" | |
126 - echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K" | |
127 - | | |
128 if [[ "${BUILD}" = "yes" ]]; then | |
129 make ${SHADOWOPT} -j${NPROC} | |
130 fi | |
131 - echo -en "travis_fold:end:build\\r\\033[0K" | |
132 - set +o errexit | |
133 - echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K" | |
134 # Show Vim version and also if_xx versions. | |
135 - | | |
136 if [[ "${BUILD}" = "yes" ]]; then | |
137 "${SRCDIR}"/vim --version | |
138 "${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-1.vim -c quit > /dev/null | |
139 "${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null | |
140 cat if_ver.txt | |
141 fi | |
142 - make ${SHADOWOPT} ${TEST} | |
143 - echo -en "travis_fold:end:test\\r\\033[0K" | |
35 | 144 |
36 # instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env), | 145 # instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env), |
37 # exclude some builds on mac os x and linux | 146 # exclude some builds on mac os x and linux |
38 # on mac os x "tiny" is always without GUI | 147 # on mac os x "tiny" is always without GUI |
39 # linux: 2*compiler + 5*env + mac: 2*compiler + 2*env | 148 # linux: 2*compiler + 5*env + mac: 2*compiler + 2*env |
40 matrix: | 149 matrix: |
41 exclude: | 150 include: |
42 - os: osx | 151 - <<: *osx |
152 name: tiny-nogui/clang | |
153 compiler: clang | |
154 env: *tiny-nogui | |
155 - <<: *osx | |
156 name: tiny-nogui/gcc | |
157 compiler: gcc | |
158 env: *tiny-nogui | |
159 - <<: *osx | |
160 name: huge/clang | |
161 compiler: clang | |
162 env: *osx-huge | |
163 - <<: *osx | |
164 name: huge/gcc | |
165 compiler: gcc | |
166 env: *osx-huge | |
167 - <<: *linux | |
168 name: tiny-nogui/clang | |
169 compiler: clang | |
170 env: *tiny-nogui | |
171 - <<: *linux | |
172 name: tiny-nogui/gcc | |
173 compiler: gcc | |
174 env: *tiny-nogui | |
175 - <<: *linux | |
176 name: tiny/clang | |
177 compiler: clang | |
43 env: *tiny | 178 env: *tiny |
44 - os: osx | 179 - <<: *linux |
180 name: tiny/gcc | |
181 compiler: gcc | |
182 env: *tiny | |
183 - <<: *linux | |
184 name: small/gcc | |
185 compiler: gcc | |
186 env: *small | |
187 - <<: *linux | |
188 name: normal/clang | |
189 compiler: clang | |
45 env: *normal | 190 env: *normal |
46 - os: osx | 191 - <<: *linux |
192 name: normal/gcc | |
193 compiler: gcc | |
194 env: *normal | |
195 - <<: *linux | |
196 name: huge+coverage/clang | |
197 compiler: clang | |
198 env: *linux-huge | |
199 after_success: *coverage | |
200 - <<: *linux | |
201 name: huge+coverage/gcc | |
202 compiler: gcc | |
203 env: *linux-huge | |
204 after_success: *coverage | |
205 - <<: *linux | |
206 name: unittests+coverage/gcc | |
207 compiler: gcc | |
47 env: *unittests | 208 env: *unittests |
48 - os: osx | 209 after_success: *coverage |
49 env: *small | 210 - <<: *linux # ASAN |
50 - os: osx | 211 name: huge+asan/gcc |
51 env: *linux-huge | 212 compiler: gcc |
52 - os: osx | 213 env: |
53 env: *asan | 214 - *linux-huge |
54 - os: linux | 215 - *asan |
55 compiler: clang | 216 after_failure: *asan_symbolize |
56 env: *asan | |
57 - os: linux | |
58 compiler: clang | |
59 env: *unittests | |
60 - os: linux | |
61 compiler: clang | |
62 env: *small | |
63 - os: linux | |
64 env: *osx-huge | |
65 | |
66 branches: | |
67 except: | |
68 - /^v[0-9]/ | |
69 | |
70 addons: | |
71 apt: | |
72 sources: | |
73 # Need msgfmt 0.19.8 to be able to generate .desktop files | |
74 - sourceline: 'ppa:ricotz/toolchain' | |
75 packages: | |
76 - autoconf | |
77 - clang | |
78 - lcov | |
79 - gettext | |
80 - libcanberra-dev | |
81 - libperl-dev | |
82 - python-dev | |
83 - python3-dev | |
84 - liblua5.2-dev | |
85 - lua5.2 | |
86 - ruby-dev | |
87 - tcl-dev | |
88 - cscope | |
89 - libgtk2.0-dev | |
90 - desktop-file-utils | |
91 homebrew: | |
92 packages: | |
93 - lua | |
94 update: true | |
95 | |
96 before_install: | |
97 - rvm reset | |
98 # Remove /opt/python/3.x.x/bin from $PATH for using system python3. | |
99 # ("pyenv global system" doesn't seem to work.) | |
100 - | | |
101 if [[ "${TRAVIS_OS_NAME}" = "linux" ]] && [[ "$(which python3)" =~ ^/opt/python/ ]]; then | |
102 export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/}) | |
103 fi | |
104 - | | |
105 if [[ "${COVERAGE}" = "yes" ]]; then | |
106 pip install --user cpp-coveralls | |
107 fi | |
108 # needed for https support for coveralls | |
109 # building cffi only works with gcc, not with clang | |
110 - | | |
111 if [[ "${COVERAGE}" = "yes" ]]; then | |
112 CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1 | |
113 fi | |
114 # Lua is not installed on Travis OSX | |
115 - | | |
116 if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then | |
117 export LUA_PREFIX=/usr/local | |
118 fi | |
119 # Use llvm-cov instead of gcov when compiler is clang. | |
120 - | | |
121 if [[ "${TRAVIS_OS_NAME}" = "linux" ]] && [[ "${CC}" = "clang" ]]; then | |
122 ln -sf "$(which llvm-cov)" /home/travis/bin/gcov | |
123 fi | |
124 | |
125 before_script: | |
126 # Start virtual framebuffer to be able to test the GUI. Does not work on OS X. | |
127 # Install dummy device for sound. | |
128 - | | |
129 if [[ "${TRAVIS_OS_NAME}" = "linux" ]]; then | |
130 export DISPLAY=:99.0 | |
131 sh -e /etc/init.d/xvfb start && sleep 3 | |
132 sudo modprobe snd-dummy | |
133 sudo usermod -a -G audio $USER | |
134 fi | |
135 | |
136 script: | |
137 - NPROC=$(getconf _NPROCESSORS_ONLN) | |
138 - set -o errexit | |
139 - echo -e "\\033[33;1mConfiguring Vim\\033[0m" && echo -en "travis_fold:start:configure\\r\\033[0K" | |
140 - | | |
141 if [[ "${CHECK_AUTOCONF}" = "yes" ]] && [[ "${CC}" = "gcc" ]]; then | |
142 make -C src autoconf | |
143 fi | |
144 - | | |
145 if [[ -n "${SHADOWOPT}" ]]; then | |
146 make -C src shadow | |
147 fi | |
148 # "./configure" changes its working directory into "$SRCDIR". | |
149 - ./configure --with-features=${FEATURES} ${CONFOPT} --enable-fail-if-missing | |
150 - echo -en "travis_fold:end:configure\\r\\033[0K" | |
151 - echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K" | |
152 - | | |
153 if [[ "${BUILD}" = "yes" ]]; then | |
154 make ${SHADOWOPT} -j${NPROC} | |
155 fi | |
156 - echo -en "travis_fold:end:build\\r\\033[0K" | |
157 - set +o errexit | |
158 - echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K" | |
159 # Show Vim version and also if_xx versions. | |
160 - | | |
161 if [[ "${BUILD}" = "yes" ]]; then | |
162 "${SRCDIR}"/vim --version | |
163 "${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-1.vim -c quit > /dev/null | |
164 "${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null | |
165 cat if_ver.txt | |
166 fi | |
167 - make ${SHADOWOPT} ${TEST} | |
168 - echo -en "travis_fold:end:test\\r\\033[0K" | |
169 - | | |
170 if [[ -n "${ASAN_OPTIONS}" ]]; then | |
171 while read log; do | |
172 asan_symbolize < "${log}" | |
173 false # exit 1 if there are ASAN logs | |
174 done < <(find . -type f -name 'asan.*' -size +0) | |
175 fi | |
176 | |
177 after_success: | |
178 - | | |
179 if [[ "${COVERAGE}" = "yes" ]]; then | |
180 ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 latin-1 EUC-KR | |
181 fi | |
182 - | | |
183 if [[ "${COVERAGE}" = "yes" ]]; then | |
184 (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash)) | |
185 fi | |
186 | 217 |
187 # vim:set sts=2 sw=2 tw=0 et: | 218 # vim:set sts=2 sw=2 tw=0 et: |