.travis.yml 17.9 KB
Newer Older
O
Olli-Pekka Heinisuo 已提交
1 2
env:
    global:
3 4
        - "PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'"
        # pip dependencies to _test_ your project
5
        - TEST_DEPENDS="numpy==1.11.1"
6 7
        # params to bdist_wheel. used to set osx build target.
        - BDIST_PARAMS=""
8
        - USE_CCACHE=1
O
Olli-Pekka Heinisuo 已提交
9 10 11
        - PLAT=x86_64
        - UNICODE_WIDTH=32

12 13 14 15

# Host Python is never used
language: generic
# Required to invoke docker ourselves as per https://docs.travis-ci.com/user/docker/
O
Olli-Pekka Heinisuo 已提交
16 17
sudo: required
services: docker
18 19 20 21 22 23 24 25
# https://docs.travis-ci.com/user/reference/trusty/
dist: trusty

# Save some time, we and setup check them out on demand instead
# https://docs.travis-ci.com/user/customizing-the-build/#Git-Clone-Depth
git:
    submodules: false

26 27 28 29 30 31 32 33
# https://docs.travis-ci.com/user/caching
cache:
  directories:
    # https://stackoverflow.com/questions/39930171/cache-brew-builds-with-travis-ci
    - $HOME/Library/Caches/Homebrew
    - /usr/local/Homebrew/
    # used in OSX custom build script dealing with local bottle caching
    - $HOME/local_bottle_metadata
I
Ivan Pozdeev 已提交
34 35
    # `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
    - $HOME/.ccache
I
Ivan Pozdeev 已提交
36

I
Ivan Pozdeev 已提交
37 38 39 40 41 42
# Add more cache stages (s2 etc) and corresponding OSX jobs like s1
# if brew builds start to take longer than one Travis time limit
stages:
  - s1
  - final
    
43
matrix:
44
  fast_finish: true
45
  include:
46

O
Olli-Pekka Heinisuo 已提交
47
    # default builds for MacOS
I
Ivan Pozdeev 已提交
48 49
    - &osx-10
      os: osx
I
Ivan Pozdeev 已提交
50
      osx_image: xcode8.3
51 52 53
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
54
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
55 56 57 58 59
      stage: final
    - <<: *osx-10
      stage: s1
    - &osx-30
      os: osx
I
Ivan Pozdeev 已提交
60
      osx_image: xcode8.3
61 62 63
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
64
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
65 66 67 68 69
      stage: final
    - <<: *osx-30
      stage: s1
    - &osx-40
      os: osx
I
Ivan Pozdeev 已提交
70
      osx_image: xcode8.3
71 72 73
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
74
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
75 76 77 78 79
      stage: final
    - <<: *osx-40
      stage: s1
    - &osx-50
      os: osx
I
Ivan Pozdeev 已提交
80
      osx_image: xcode8.3
81 82 83
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
84
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
85 86 87 88 89
      stage: final
    - <<: *osx-50
      stage: s1
    - &osx-60
      os: osx
I
Ivan Pozdeev 已提交
90
      osx_image: xcode8.3
91 92 93 94
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
95
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
96 97 98
      stage: final
    - <<: *osx-60
      stage: s1
O
Olli-Pekka Heinisuo 已提交
99 100

    # headless builds for MacOS
I
Ivan Pozdeev 已提交
101 102
    - &osx-70
      os: osx
I
Ivan Pozdeev 已提交
103
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
104 105 106 107
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
108 109 110 111 112
      stage: final
    - <<: *osx-70
      stage: s1
    - &osx-80
      os: osx
I
Ivan Pozdeev 已提交
113
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
114 115 116 117
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
118 119 120 121 122
      stage: final
    - <<: *osx-80
      stage: s1
    - &osx-90
      os: osx
I
Ivan Pozdeev 已提交
123
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
124 125 126 127
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
128 129 130 131 132
      stage: final
    - <<: *osx-90
      stage: s1
    - &osx-100
      os: osx
I
Ivan Pozdeev 已提交
133
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
134 135 136 137
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
138 139 140 141 142
      stage: final
    - <<: *osx-100
      stage: s1
    - &osx-110
      os: osx
I
Ivan Pozdeev 已提交
143
      osx_image: xcode8.3
144 145 146 147
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
148
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
149 150 151
      stage: final
    - <<: *osx-110
      stage: s1
152

O
Olli-Pekka Heinisuo 已提交
153
    # Contrib builds for MacOS
I
Ivan Pozdeev 已提交
154 155
    - &osx-120
      os: osx
I
Ivan Pozdeev 已提交
156
      osx_image: xcode8.3
157 158
      env:
        - MB_PYTHON_VERSION=2.7
O
Olli-Pekka Heinisuo 已提交
159
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
160
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
161 162 163 164 165
      stage: final
    - <<: *osx-120
      stage: s1
    - &osx-130
      os: osx
I
Ivan Pozdeev 已提交
166
      osx_image: xcode8.3
167 168
      env:
        - MB_PYTHON_VERSION=3.4
169
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
170
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
171 172 173 174 175
      stage: final
    - <<: *osx-130
      stage: s1
    - &osx-140
      os: osx
I
Ivan Pozdeev 已提交
176
      osx_image: xcode8.3
177 178
      env:
        - MB_PYTHON_VERSION=3.5
179
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
180
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
181 182 183 184 185
      stage: final
    - <<: *osx-140
      stage: s1
    - &osx-150
      os: osx
I
Ivan Pozdeev 已提交
186
      osx_image: xcode8.3
187 188
      env:
        - MB_PYTHON_VERSION=3.6
189
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
190
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
191 192 193 194 195
      stage: final
    - <<: *osx-150
      stage: s1
    - &osx-160
      os: osx
I
Ivan Pozdeev 已提交
196
      osx_image: xcode8.3
197 198 199 200
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
201
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
202 203 204
      stage: final
    - <<: *osx-160
      stage: s1
O
Olli-Pekka Heinisuo 已提交
205 206

    # headless contrib builds for MacOS
I
Ivan Pozdeev 已提交
207 208
    - &osx-170
      os: osx
I
Ivan Pozdeev 已提交
209
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
210 211 212 213
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
214 215 216 217 218
      stage: final
    - <<: *osx-170
      stage: s1
    - &osx-180
      os: osx
I
Ivan Pozdeev 已提交
219
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
220 221 222 223
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
224 225 226 227 228
      stage: final
    - <<: *osx-180
      stage: s1
    - &osx-190
      os: osx
I
Ivan Pozdeev 已提交
229
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
230 231 232 233
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
234 235 236 237 238
      stage: final
    - <<: *osx-190
      stage: s1
    - &osx-200
      os: osx
I
Ivan Pozdeev 已提交
239
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
240 241 242 243
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
244 245 246 247 248
      stage: final
    - <<: *osx-200
      stage: s1
    - &osx-210
      os: osx
I
Ivan Pozdeev 已提交
249
      osx_image: xcode8.3
250 251 252 253
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
254
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
255 256 257
      stage: final
    - <<: *osx-210
      stage: s1
258

O
Olli-Pekka Heinisuo 已提交
259
    # default builds for Linux
260
    - os: linux
I
Ivan Pozdeev 已提交
261 262
      # the following jobs will use the same stage name by default
      stage: s1
263 264 265
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
266
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
267 268
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
269 270 271 272 273 274
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
275 276
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
277 278 279 280 281 282
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
283 284
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
285 286 287 288 289 290 291
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
292 293
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
294 295 296 297 298
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
299 300
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
301 302 303 304 305 306
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
307 308
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
309 310 311 312 313
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
314 315
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
316 317 318 319 320 321
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
322 323
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
324 325 326 327 328 329
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.11.3
I
Ivan Pozdeev 已提交
330 331
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
332 333 334 335 336 337 338
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.11.3
I
Ivan Pozdeev 已提交
339 340
      cache:
        directories: $HOME/.ccache
341 342 343 344 345 346
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
347 348
      cache:
        directories: $HOME/.ccache
349 350 351 352 353 354 355
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
356 357
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
358 359 360 361 362 363 364

    # headless builds for Linux
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
365 366
      cache:
        directories: $HOME/.ccache
367 368 369 370 371
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
372
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
373 374
      cache:
        directories: $HOME/.ccache
375 376 377 378 379
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
380
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
381 382
      cache:
        directories: $HOME/.ccache
383 384 385 386 387 388
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
389
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
390 391
      cache:
        directories: $HOME/.ccache
392 393 394 395
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
396
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
397 398
      cache:
        directories: $HOME/.ccache
399 400 401 402 403
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - PLAT=i686
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
404
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
405 406
      cache:
        directories: $HOME/.ccache
407 408 409 410
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
411
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
412 413
      cache:
        directories: $HOME/.ccache
414 415 416 417 418
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
419
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
420 421
      cache:
        directories: $HOME/.ccache
422 423 424 425
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
426
        - ENABLE_HEADLESS=1
427
        - TEST_DEPENDS=numpy==1.11.3
I
Ivan Pozdeev 已提交
428 429
      cache:
        directories: $HOME/.ccache
430 431 432 433 434
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - PLAT=i686
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
435
        - ENABLE_HEADLESS=1
436
        - TEST_DEPENDS=numpy==1.11.3
I
Ivan Pozdeev 已提交
437 438
      cache:
        directories: $HOME/.ccache
439 440 441 442 443 444
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
445 446
      cache:
        directories: $HOME/.ccache
447 448 449 450 451 452 453
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
454 455
      cache:
        directories: $HOME/.ccache
456 457

    # contrib builds for Linux
458 459 460
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
461
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
462
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
463 464
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
465 466 467 468 469 470
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
471 472
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
473 474 475 476 477 478
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
479 480
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
481 482 483 484 485 486 487
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
488 489
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
490 491 492 493 494
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
495 496
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
497 498 499 500 501 502
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - PLAT=i686
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
503 504
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
505 506 507 508 509
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
510 511
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
512 513 514 515 516 517
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
518 519
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
520 521 522 523 524 525
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - TEST_DEPENDS=numpy==1.11.3
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
526 527
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
528 529 530 531 532 533 534
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - PLAT=i686
        - TEST_DEPENDS=numpy==1.11.3
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
535 536
      cache:
        directories: $HOME/.ccache
537 538 539 540 541 542
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - TEST_DEPENDS=numpy==1.14.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
543 544
      cache:
        directories: $HOME/.ccache
545 546 547 548 549 550 551
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - PLAT=i686
        - TEST_DEPENDS=numpy==1.14.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
552 553
      cache:
        directories: $HOME/.ccache
554

O
Olli-Pekka Heinisuo 已提交
555 556 557 558 559 560 561

    # headless contrib builds for Linux
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
562 563
      cache:
        directories: $HOME/.ccache
564 565 566 567
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
568
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
569
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
570 571
      cache:
        directories: $HOME/.ccache
572 573 574 575
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
576
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
577
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
578 579
      cache:
        directories: $HOME/.ccache
580 581 582 583 584
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
585
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
586
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
587 588
      cache:
        directories: $HOME/.ccache
589 590 591
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
592
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
593
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
594 595
      cache:
        directories: $HOME/.ccache
596 597 598 599
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - PLAT=i686
600
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
601
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
602 603
      cache:
        directories: $HOME/.ccache
604 605 606
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
607
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
608
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
609 610
      cache:
        directories: $HOME/.ccache
611
    - os: linux
O
Olli-Pekka Heinisuo 已提交
612 613
      env:
        - MB_PYTHON_VERSION=3.5
614
        - PLAT=i686
615
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
616
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
617 618
      cache:
        directories: $HOME/.ccache
619 620 621
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
622
        - TEST_DEPENDS=numpy==1.11.3
623
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
624
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
625 626
      cache:
        directories: $HOME/.ccache
627 628 629 630
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - PLAT=i686
631
        - TEST_DEPENDS=numpy==1.11.3
632
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
633
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
634 635
      cache:
        directories: $HOME/.ccache
636 637 638 639 640 641
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - TEST_DEPENDS=numpy==1.14.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
642 643
      cache:
        directories: $HOME/.ccache
644 645 646 647 648 649 650
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - PLAT=i686
        - TEST_DEPENDS=numpy==1.14.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
651 652
      cache:
        directories: $HOME/.ccache
653

654 655 656 657
# The first line is printed in the folding header in Travis output
before_install: |
    # Check out and prepare the source
    set -e
658 659
    # Multibuild doesn't have releases, so --depth would break eventually (see
    # https://superuser.com/questions/1240216/server-does-not-allow-request-for-unadvertised)
660 661 662 663 664 665 666 667
    git submodule update --init multibuild
    source multibuild/common_utils.sh
    # https://github.com/matthew-brett/multibuild/issues/116
    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export ARCH_FLAGS=" "; fi
    source multibuild/travis_steps.sh
    # This sets -x
    source multibuild_customize.sh
    echo $ENABLE_CONTRIB > contrib.enabled
O
Olli-Pekka Heinisuo 已提交
668
    echo $ENABLE_HEADLESS > headless.enabled
I
Ivan Pozdeev 已提交
669

670 671 672 673 674 675 676
    if [ -n "$IS_OSX" ]; then
        TAPS="$(brew --repository)/Library/Taps"
        if [ -e "$TAPS/caskroom/homebrew-cask" -a -e "$TAPS/homebrew/homebrew-cask" ]; then
            rm -rf "$TAPS/caskroom/homebrew-cask"
        fi
        find "$TAPS" -type d -name .git -exec \
                bash -xec '
677 678 679 680
                    cd $(dirname '\''{}'\'') || echo "status: $?"
                    git clean -fxd || echo "status: $?"
                    sleep 1 || echo "status: $?"
                    git status || echo "status: $?"' \; || echo "status: $?"
I
Ivan Pozdeev 已提交
681

682 683
        brew_cache_cleanup
    fi
I
Ivan Pozdeev 已提交
684

685 686 687 688 689 690 691 692 693 694 695 696
    # Not interested in travis internal scripts' output
    set +x

install: |
    # Build and package
    set -x
    build_wheel $REPO_DIR $PLAT
    set +x

script: |
    # Install and run tests
    set -x
697
    install_run $PLAT && rc=$? || rc=$?
698 699
    set +x

700 701 702
    #otherwise, Travis logic terminates prematurely
    #https://travis-ci.community/t/shell-session-update-command-not-found-in-build-log-causes-build-to-fail-if-trap-err-is-set/817
    trap ERR
I
Ivan Pozdeev 已提交
703

704 705 706 707
    test "$rc" -eq 0

before_cache: |
    # Cleanup dirs to be cached
708
    set -e; set -x
709 710 711
    if [ -n "$IS_OSX" ]; then

        # When Taps is cached, this dir causes "Error: file exists" on `brew update`
712 713 714
        if [ -e "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask" ]; then
            rm -rf "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask"
        fi
715 716

        brew_cache_cleanup
I
Ivan Pozdeev 已提交
717

718
    fi
719
    set +x; set +e
I
Ivan Pozdeev 已提交
720

721 722 723 724 725 726
after_success: |
    # Upload wheels to pypi if requested
    if [ -n "$TRAVIS_TAG" ]; then
        set -x
        pip install twine

727 728 729 730
        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
          pip install --upgrade pyOpenSSL
        fi

731
        if [[ $ENABLE_CONTRIB == 0 ]]; then
O
Olli-Pekka Heinisuo 已提交
732 733 734 735 736
            if [[ $ENABLE_HEADLESS == 0 ]]; then
              echo "This is default build. Deployment will be done to to PyPI entry opencv-python."
            else
              echo "This is headless contrib build. Deployment will be done to to PyPI entry opencv-python-headless."
            fi
737
        else
O
Olli-Pekka Heinisuo 已提交
738 739 740 741 742
            if [[ $ENABLE_HEADLESS == 0 ]]; then
              echo "This is contrib build. Deployment will be done to to PyPI entry opencv-contrib-python."
            else
              echo "This is headless contrib build. Deployment will be done to to PyPI entry opencv-contrib-python-headless."
            fi
743 744 745 746 747 748 749
        fi

        twine upload -u ${USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/wheelhouse/opencv*
        set +x
    else
        echo "Tag not set, deployment skipped."
    fi