Skip to content

Commit 9f1a442

Browse files
native-apiskvark
authored andcommitted
Use Travis workspaces (#228)
* Use one job for MacOS Homebrew builds cache with Travis workspaces * Brew build job needs to both feed to other jobs and cache between builds * Move Linux jobs to the Final stage With only 1 OSX job in S1, the Linux part is now the critical path and holds the build time back
1 parent 9b41acd commit 9f1a442

File tree

1 file changed

+84
-106
lines changed

1 file changed

+84
-106
lines changed

.travis.yml

+84-106
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@ git:
2525
# https://docs.travis-ci.com/user/caching
2626
cache:
2727
directories:
28-
# https://stackoverflow.com/questions/39930171/cache-brew-builds-with-travis-ci
29-
- $HOME/Library/Caches/Homebrew
30-
- /usr/local/Homebrew/
31-
# used in OSX custom build script dealing with local bottle caching
32-
- $HOME/local_bottle_metadata
3328
# `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
3429
- $HOME/.ccache
3530

@@ -43,222 +38,205 @@ matrix:
4338
fast_finish: true
4439
include:
4540

41+
- os: osx
42+
osx_image: xcode8.3
43+
stage: s1
44+
workspaces:
45+
create:
46+
name: brew_cache
47+
paths:
48+
# https://stackoverflow.com/questions/39930171/cache-brew-builds-with-travis-ci
49+
- $HOME/Library/Caches/Homebrew
50+
- /usr/local/Homebrew/
51+
# used in OSX custom build script dealing with local bottle caching
52+
- $HOME/local_bottle_metadata
53+
#workspaces share within the same build, cache shares between builds
54+
cache:
55+
directories:
56+
# `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
57+
- $HOME/.ccache
58+
# https://stackoverflow.com/questions/39930171/cache-brew-builds-with-travis-ci
59+
- $HOME/Library/Caches/Homebrew
60+
- /usr/local/Homebrew/
61+
# used in OSX custom build script dealing with local bottle caching
62+
- $HOME/local_bottle_metadata
63+
4664
# default builds for MacOS
47-
- &osx-10
65+
#further jobs in the list will use the same stage until the next assignment
66+
- stage: final
4867
os: osx
4968
osx_image: xcode8.3
5069
env:
5170
- MB_PYTHON_VERSION=2.7
5271
- ENABLE_CONTRIB=0
5372
- ENABLE_HEADLESS=0
54-
stage: final
55-
- <<: *osx-10
56-
stage: s1
57-
- &osx-30
58-
os: osx
73+
workspaces:
74+
use: brew_cache
75+
- os: osx
5976
osx_image: xcode8.3
6077
env:
6178
- MB_PYTHON_VERSION=3.4
6279
- ENABLE_CONTRIB=0
6380
- ENABLE_HEADLESS=0
64-
stage: final
65-
- <<: *osx-30
66-
stage: s1
67-
- &osx-40
68-
os: osx
81+
workspaces:
82+
use: brew_cache
83+
- os: osx
6984
osx_image: xcode8.3
7085
env:
7186
- MB_PYTHON_VERSION=3.5
7287
- ENABLE_CONTRIB=0
7388
- ENABLE_HEADLESS=0
74-
stage: final
75-
- <<: *osx-40
76-
stage: s1
77-
- &osx-50
78-
os: osx
89+
workspaces:
90+
use: brew_cache
91+
- os: osx
7992
osx_image: xcode8.3
8093
env:
8194
- MB_PYTHON_VERSION=3.6
8295
- ENABLE_CONTRIB=0
8396
- ENABLE_HEADLESS=0
84-
stage: final
85-
- <<: *osx-50
86-
stage: s1
87-
- &osx-60
88-
os: osx
97+
workspaces:
98+
use: brew_cache
99+
- os: osx
89100
osx_image: xcode8.3
90101
env:
91102
- MB_PYTHON_VERSION=3.7
92103
- ENABLE_CONTRIB=0
93104
- ENABLE_HEADLESS=0
94105
- TEST_DEPENDS=numpy==1.14.5
95-
stage: final
96-
- <<: *osx-60
97-
stage: s1
106+
workspaces:
107+
use: brew_cache
98108

99109
# headless builds for MacOS
100-
- &osx-70
101-
os: osx
110+
- os: osx
102111
osx_image: xcode8.3
103112
env:
104113
- MB_PYTHON_VERSION=2.7
105114
- ENABLE_CONTRIB=0
106115
- ENABLE_HEADLESS=1
107-
stage: final
108-
- <<: *osx-70
109-
stage: s1
110-
- &osx-80
111-
os: osx
116+
workspaces:
117+
use: brew_cache
118+
- os: osx
112119
osx_image: xcode8.3
113120
env:
114121
- MB_PYTHON_VERSION=3.4
115122
- ENABLE_CONTRIB=0
116123
- ENABLE_HEADLESS=1
117-
stage: final
118-
- <<: *osx-80
119-
stage: s1
120-
- &osx-90
121-
os: osx
124+
workspaces:
125+
use: brew_cache
126+
- os: osx
122127
osx_image: xcode8.3
123128
env:
124129
- MB_PYTHON_VERSION=3.5
125130
- ENABLE_CONTRIB=0
126131
- ENABLE_HEADLESS=1
127-
stage: final
128-
- <<: *osx-90
129-
stage: s1
130-
- &osx-100
131-
os: osx
132+
workspaces:
133+
use: brew_cache
134+
- os: osx
132135
osx_image: xcode8.3
133136
env:
134137
- MB_PYTHON_VERSION=3.6
135138
- ENABLE_CONTRIB=0
136139
- ENABLE_HEADLESS=1
137-
stage: final
138-
- <<: *osx-100
139-
stage: s1
140-
- &osx-110
141-
os: osx
140+
workspaces:
141+
use: brew_cache
142+
- os: osx
142143
osx_image: xcode8.3
143144
env:
144145
- MB_PYTHON_VERSION=3.7
145146
- ENABLE_CONTRIB=0
146147
- ENABLE_HEADLESS=1
147148
- TEST_DEPENDS=numpy==1.14.5
148-
stage: final
149-
- <<: *osx-110
150-
stage: s1
149+
workspaces:
150+
use: brew_cache
151151

152152
# Contrib builds for MacOS
153-
- &osx-120
154-
os: osx
153+
- os: osx
155154
osx_image: xcode8.3
156155
env:
157156
- MB_PYTHON_VERSION=2.7
158157
- ENABLE_CONTRIB=1
159158
- ENABLE_HEADLESS=0
160-
stage: final
161-
- <<: *osx-120
162-
stage: s1
163-
- &osx-130
164-
os: osx
159+
workspaces:
160+
use: brew_cache
161+
- os: osx
165162
osx_image: xcode8.3
166163
env:
167164
- MB_PYTHON_VERSION=3.4
168165
- ENABLE_CONTRIB=1
169166
- ENABLE_HEADLESS=0
170-
stage: final
171-
- <<: *osx-130
172-
stage: s1
173-
- &osx-140
174-
os: osx
167+
workspaces:
168+
use: brew_cache
169+
- os: osx
175170
osx_image: xcode8.3
176171
env:
177172
- MB_PYTHON_VERSION=3.5
178173
- ENABLE_CONTRIB=1
179174
- ENABLE_HEADLESS=0
180-
stage: final
181-
- <<: *osx-140
182-
stage: s1
183-
- &osx-150
184-
os: osx
175+
workspaces:
176+
use: brew_cache
177+
- os: osx
185178
osx_image: xcode8.3
186179
env:
187180
- MB_PYTHON_VERSION=3.6
188181
- ENABLE_CONTRIB=1
189182
- ENABLE_HEADLESS=0
190-
stage: final
191-
- <<: *osx-150
192-
stage: s1
193-
- &osx-160
194-
os: osx
183+
workspaces:
184+
use: brew_cache
185+
- os: osx
195186
osx_image: xcode8.3
196187
env:
197188
- MB_PYTHON_VERSION=3.7
198189
- ENABLE_CONTRIB=1
199190
- ENABLE_HEADLESS=0
200191
- TEST_DEPENDS=numpy==1.14.5
201-
stage: final
202-
- <<: *osx-160
203-
stage: s1
192+
workspaces:
193+
use: brew_cache
204194

205195
# headless contrib builds for MacOS
206-
- &osx-170
207-
os: osx
196+
- os: osx
208197
osx_image: xcode8.3
209198
env:
210199
- MB_PYTHON_VERSION=2.7
211200
- ENABLE_CONTRIB=1
212201
- ENABLE_HEADLESS=1
213-
stage: final
214-
- <<: *osx-170
215-
stage: s1
216-
- &osx-180
217-
os: osx
202+
workspaces:
203+
use: brew_cache
204+
- os: osx
218205
osx_image: xcode8.3
219206
env:
220207
- MB_PYTHON_VERSION=3.4
221208
- ENABLE_CONTRIB=1
222209
- ENABLE_HEADLESS=1
223-
stage: final
224-
- <<: *osx-180
225-
stage: s1
226-
- &osx-190
227-
os: osx
210+
workspaces:
211+
use: brew_cache
212+
- os: osx
228213
osx_image: xcode8.3
229214
env:
230215
- MB_PYTHON_VERSION=3.5
231216
- ENABLE_CONTRIB=1
232217
- ENABLE_HEADLESS=1
233-
stage: final
234-
- <<: *osx-190
235-
stage: s1
236-
- &osx-200
237-
os: osx
218+
workspaces:
219+
use: brew_cache
220+
- os: osx
238221
osx_image: xcode8.3
239222
env:
240223
- MB_PYTHON_VERSION=3.6
241224
- ENABLE_CONTRIB=1
242225
- ENABLE_HEADLESS=1
243-
stage: final
244-
- <<: *osx-200
245-
stage: s1
246-
- &osx-210
247-
os: osx
226+
workspaces:
227+
use: brew_cache
228+
- os: osx
248229
osx_image: xcode8.3
249230
env:
250231
- MB_PYTHON_VERSION=3.7
251232
- ENABLE_CONTRIB=1
252233
- ENABLE_HEADLESS=1
253234
- TEST_DEPENDS=numpy==1.14.5
254-
stage: final
255-
- <<: *osx-210
256-
stage: s1
235+
workspaces:
236+
use: brew_cache
257237

258238
# default builds for Linux
259239
- os: linux
260-
# the following jobs will use the same stage name by default
261-
stage: s1
262240
env:
263241
- MB_PYTHON_VERSION=2.7
264242
- ENABLE_CONTRIB=0

0 commit comments

Comments
 (0)