@@ -33,185 +33,233 @@ cache:
3333 - $HOME/local_bottle_metadata
3434 # `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
3535 - $HOME/.ccache
36+
37+ # Add more cache stages (s2 etc) and corresponding OSX jobs like s1
38+ # if brew builds start to take longer than one Travis time limit
39+ stages :
40+ - s1
41+ - final
3642
3743matrix :
3844 fast_finish : true
3945 include :
4046
4147 # default builds for MacOS
42- - os : osx
43- language : generic
44- osx_image : xcode8
48+ - & osx-10
49+ os : osx
50+ osx_image : xcode8.3
4551 env :
4652 - MB_PYTHON_VERSION=2.7
4753 - ENABLE_CONTRIB=0
4854 - ENABLE_HEADLESS=0
49- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
50- - os : osx
51- language : generic
52- osx_image : xcode8
55+ stage : final
56+ - << : *osx-10
57+ stage : s1
58+ - &osx-30
59+ os : osx
60+ osx_image : xcode8.3
5361 env :
5462 - MB_PYTHON_VERSION=3.4
5563 - ENABLE_CONTRIB=0
5664 - ENABLE_HEADLESS=0
57- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
58- - os : osx
59- language : generic
60- osx_image : xcode8
65+ stage : final
66+ - << : *osx-30
67+ stage : s1
68+ - &osx-40
69+ os : osx
70+ osx_image : xcode8.3
6171 env :
6272 - MB_PYTHON_VERSION=3.5
6373 - ENABLE_CONTRIB=0
6474 - ENABLE_HEADLESS=0
65- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
66- - os : osx
67- language : generic
68- osx_image : xcode8
75+ stage : final
76+ - << : *osx-40
77+ stage : s1
78+ - &osx-50
79+ os : osx
80+ osx_image : xcode8.3
6981 env :
7082 - MB_PYTHON_VERSION=3.6
7183 - ENABLE_CONTRIB=0
7284 - ENABLE_HEADLESS=0
73- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
74- - os : osx
75- language : generic
76- osx_image : xcode8
85+ stage : final
86+ - << : *osx-50
87+ stage : s1
88+ - &osx-60
89+ os : osx
90+ osx_image : xcode8.3
7791 env :
7892 - MB_PYTHON_VERSION=3.7
7993 - ENABLE_CONTRIB=0
8094 - ENABLE_HEADLESS=0
81- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
8295 - TEST_DEPENDS=numpy==1.14.5
96+ stage : final
97+ - << : *osx-60
98+ stage : s1
8399
84100 # headless builds for MacOS
85- - os : osx
86- language : generic
87- osx_image : xcode8
101+ - & osx-70
102+ os : osx
103+ osx_image : xcode8.3
88104 env :
89105 - MB_PYTHON_VERSION=2.7
90106 - ENABLE_CONTRIB=0
91107 - ENABLE_HEADLESS=1
92- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
93- - os : osx
94- language : generic
95- osx_image : xcode8
108+ stage : final
109+ - << : *osx-70
110+ stage : s1
111+ - &osx-80
112+ os : osx
113+ osx_image : xcode8.3
96114 env :
97115 - MB_PYTHON_VERSION=3.4
98116 - ENABLE_CONTRIB=0
99117 - ENABLE_HEADLESS=1
100- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
101- - os : osx
102- language : generic
103- osx_image : xcode8
118+ stage : final
119+ - << : *osx-80
120+ stage : s1
121+ - &osx-90
122+ os : osx
123+ osx_image : xcode8.3
104124 env :
105125 - MB_PYTHON_VERSION=3.5
106126 - ENABLE_CONTRIB=0
107127 - ENABLE_HEADLESS=1
108- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
109- - os : osx
110- language : generic
111- osx_image : xcode8
128+ stage : final
129+ - << : *osx-90
130+ stage : s1
131+ - &osx-100
132+ os : osx
133+ osx_image : xcode8.3
112134 env :
113135 - MB_PYTHON_VERSION=3.6
114136 - ENABLE_CONTRIB=0
115137 - ENABLE_HEADLESS=1
116- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
117- - os : osx
118- language : generic
119- osx_image : xcode8
138+ stage : final
139+ - << : *osx-100
140+ stage : s1
141+ - &osx-110
142+ os : osx
143+ osx_image : xcode8.3
120144 env :
121145 - MB_PYTHON_VERSION=3.7
122146 - ENABLE_CONTRIB=0
123147 - ENABLE_HEADLESS=1
124- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
125148 - TEST_DEPENDS=numpy==1.14.5
149+ stage : final
150+ - << : *osx-110
151+ stage : s1
126152
127153 # Contrib builds for MacOS
128- - os : osx
129- language : generic
130- osx_image : xcode8
154+ - & osx-120
155+ os : osx
156+ osx_image : xcode8.3
131157 env :
132158 - MB_PYTHON_VERSION=2.7
133159 - ENABLE_CONTRIB=1
134160 - ENABLE_HEADLESS=0
135- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
136- - os : osx
137- language : generic
138- osx_image : xcode8
161+ stage : final
162+ - << : *osx-120
163+ stage : s1
164+ - &osx-130
165+ os : osx
166+ osx_image : xcode8.3
139167 env :
140168 - MB_PYTHON_VERSION=3.4
141169 - ENABLE_CONTRIB=1
142170 - ENABLE_HEADLESS=0
143- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
144- - os : osx
145- language : generic
146- osx_image : xcode8
171+ stage : final
172+ - << : *osx-130
173+ stage : s1
174+ - &osx-140
175+ os : osx
176+ osx_image : xcode8.3
147177 env :
148178 - MB_PYTHON_VERSION=3.5
149179 - ENABLE_CONTRIB=1
150180 - ENABLE_HEADLESS=0
151- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
152- - os : osx
153- language : generic
154- osx_image : xcode8
181+ stage : final
182+ - << : *osx-140
183+ stage : s1
184+ - &osx-150
185+ os : osx
186+ osx_image : xcode8.3
155187 env :
156188 - MB_PYTHON_VERSION=3.6
157189 - ENABLE_CONTRIB=1
158190 - ENABLE_HEADLESS=0
159- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
160- - os : osx
161- language : generic
162- osx_image : xcode8
191+ stage : final
192+ - << : *osx-150
193+ stage : s1
194+ - &osx-160
195+ os : osx
196+ osx_image : xcode8.3
163197 env :
164198 - MB_PYTHON_VERSION=3.7
165199 - ENABLE_CONTRIB=1
166200 - ENABLE_HEADLESS=0
167- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
168201 - TEST_DEPENDS=numpy==1.14.5
202+ stage : final
203+ - << : *osx-160
204+ stage : s1
169205
170206 # headless contrib builds for MacOS
171- - os : osx
172- language : generic
173- osx_image : xcode8
207+ - & osx-170
208+ os : osx
209+ osx_image : xcode8.3
174210 env :
175211 - MB_PYTHON_VERSION=2.7
176212 - ENABLE_CONTRIB=1
177213 - ENABLE_HEADLESS=1
178- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
179- - os : osx
180- language : generic
181- osx_image : xcode8
214+ stage : final
215+ - << : *osx-170
216+ stage : s1
217+ - &osx-180
218+ os : osx
219+ osx_image : xcode8.3
182220 env :
183221 - MB_PYTHON_VERSION=3.4
184222 - ENABLE_CONTRIB=1
185223 - ENABLE_HEADLESS=1
186- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
187- - os : osx
188- language : generic
189- osx_image : xcode8
224+ stage : final
225+ - << : *osx-180
226+ stage : s1
227+ - &osx-190
228+ os : osx
229+ osx_image : xcode8.3
190230 env :
191231 - MB_PYTHON_VERSION=3.5
192232 - ENABLE_CONTRIB=1
193233 - ENABLE_HEADLESS=1
194- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
195- - os : osx
196- language : generic
197- osx_image : xcode8
234+ stage : final
235+ - << : *osx-190
236+ stage : s1
237+ - &osx-200
238+ os : osx
239+ osx_image : xcode8.3
198240 env :
199241 - MB_PYTHON_VERSION=3.6
200242 - ENABLE_CONTRIB=1
201243 - ENABLE_HEADLESS=1
202- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
203- - os : osx
204- language : generic
205- osx_image : xcode8
244+ stage : final
245+ - << : *osx-200
246+ stage : s1
247+ - &osx-210
248+ os : osx
249+ osx_image : xcode8.3
206250 env :
207251 - MB_PYTHON_VERSION=3.7
208252 - ENABLE_CONTRIB=1
209253 - ENABLE_HEADLESS=1
210- - BDIST_PARAMS="-- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.7"
211254 - TEST_DEPENDS=numpy==1.14.5
255+ stage : final
256+ - << : *osx-210
257+ stage : s1
212258
213259 # default builds for Linux
214260 - os : linux
261+ # the following jobs will use the same stage name by default
262+ stage : s1
215263 env :
216264 - MB_PYTHON_VERSION=2.7
217265 - ENABLE_CONTRIB=0
@@ -618,30 +666,29 @@ before_install: |
618666 source multibuild_customize.sh
619667 echo $ENABLE_CONTRIB > contrib.enabled
620668 echo $ENABLE_HEADLESS > headless.enabled
621-
669+
622670 if [ -n "$IS_OSX" ]; then
623671 TAPS="$(brew --repository)/Library/Taps"
624672 if [ -e "$TAPS/caskroom/homebrew-cask" -a -e "$TAPS/homebrew/homebrew-cask" ]; then
625673 rm -rf "$TAPS/caskroom/homebrew-cask"
626674 fi
627675 find "$TAPS" -type d -name .git -exec \
628676 bash -xec '
629- cd $(dirname '\''{}'\'')
630- git clean -fxd
631- git status' \;
632-
677+ cd $(dirname '\''{}'\'') || echo "status: $?"
678+ git clean -fxd || echo "status: $?"
679+ sleep 1 || echo "status: $?"
680+ git status || echo "status: $?"' \; || echo "status: $?"
681+
633682 brew_cache_cleanup
634683 fi
635-
636- before_install
684+
637685 # Not interested in travis internal scripts' output
638686 set +x
639687
640688install : |
641689 # Build and package
642690 set -x
643691 build_wheel $REPO_DIR $PLAT
644- if [ -n "$USE_CCACHE" ]; then ccache --show-stats; fi
645692 set +x
646693
647694script : |
@@ -653,12 +700,12 @@ script: |
653700 #otherwise, Travis logic terminates prematurely
654701 #https://travis-ci.community/t/shell-session-update-command-not-found-in-build-log-causes-build-to-fail-if-trap-err-is-set/817
655702 trap ERR
656-
703+
657704 test "$rc" -eq 0
658705
659706before_cache : |
660707 # Cleanup dirs to be cached
661- set -x
708+ set -e; set - x
662709 if [ -n "$IS_OSX" ]; then
663710
664711 # When Taps is cached, this dir causes "Error: file exists" on `brew update`
@@ -667,10 +714,10 @@ before_cache: |
667714 fi
668715
669716 brew_cache_cleanup
670-
717+
671718 fi
672- set +x
673-
719+ set +x; set +e
720+
674721after_success : |
675722 # Upload wheels to pypi if requested
676723 if [ -n "$TRAVIS_TAG" ]; then
0 commit comments