.travis.yml 18.0 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
        - CONFIG_PATH="travis_config.sh"
9
        - USE_CCACHE=1
O
Olli-Pekka Heinisuo 已提交
10 11 12
        - PLAT=x86_64
        - UNICODE_WIDTH=32

13 14 15

# Host Python is never used
language: generic
O
Olli-Pekka Heinisuo 已提交
16
services: docker
17 18
# https://docs.travis-ci.com/user/reference/xenial
dist: xenial
19 20 21 22 23 24

# 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

25 26 27 28 29 30 31 32
# 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 已提交
33 34
    # `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
    - $HOME/.ccache
I
Ivan Pozdeev 已提交
35

I
Ivan Pozdeev 已提交
36 37 38 39 40
# 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
41

42
matrix:
43
  fast_finish: true
44
  include:
45

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

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

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

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

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

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

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

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

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

653 654 655 656
# The first line is printed in the folding header in Travis output
before_install: |
    # Check out and prepare the source
    set -e
657 658
    # Multibuild doesn't have releases, so --depth would break eventually (see
    # https://superuser.com/questions/1240216/server-does-not-allow-request-for-unadvertised)
659 660 661 662 663 664
    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
665
    source travis_multibuild_customize.sh
666
    echo $ENABLE_CONTRIB > contrib.enabled
O
Olli-Pekka Heinisuo 已提交
667
    echo $ENABLE_HEADLESS > headless.enabled
I
Ivan Pozdeev 已提交
668

669 670 671 672 673 674 675
    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 '
676 677 678 679
                    cd $(dirname '\''{}'\'') || echo "status: $?"
                    git clean -fxd || echo "status: $?"
                    sleep 1 || echo "status: $?"
                    git status || echo "status: $?"' \; || echo "status: $?"
I
Ivan Pozdeev 已提交
680

681 682
        brew_cache_cleanup
    fi
I
Ivan Pozdeev 已提交
683

684 685 686 687 688 689 690 691 692 693 694 695
    # 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
696
    install_run $PLAT && rc=$? || rc=$?
697 698
    set +x

699 700 701
    #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 已提交
702

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

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

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

        brew_cache_cleanup
I
Ivan Pozdeev 已提交
716

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

720 721 722 723
after_success: |
    # Upload wheels to pypi if requested
    if [ -n "$TRAVIS_TAG" ]; then
        set -x
O
Olli-Pekka Heinisuo 已提交
724 725 726 727 728

        if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
          pip install --user twine
          pip install --user --upgrade six
        fi
729

730
        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
O
Olli-Pekka Heinisuo 已提交
731 732
          pip install twine
          pip install --upgrade pyOpenSSL
733 734
        fi

735
        if [[ $ENABLE_CONTRIB == 0 ]]; then
O
Olli-Pekka Heinisuo 已提交
736 737 738 739 740
            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
741
        else
O
Olli-Pekka Heinisuo 已提交
742 743 744 745 746
            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
747 748 749 750 751 752 753
        fi

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