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

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
# https://docs.travis-ci.com/user/caching
cache:
  directories:
I
Ivan Pozdeev 已提交
28 29
    # `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
    - $HOME/.ccache
I
Ivan Pozdeev 已提交
30

I
Ivan Pozdeev 已提交
31 32 33 34 35
# 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
36

37
matrix:
38
  fast_finish: true
39
  include:
40

N
native-api 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
    - os: osx
      osx_image: xcode8.3
      stage: s1
      workspaces:
        create:
          name: brew_cache
          paths:
            # 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
      #workspaces share within the same build, cache shares between builds
      cache:
        directories:
          # `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
          - $HOME/.ccache
          # 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

O
Olli-Pekka Heinisuo 已提交
64
    # default builds for MacOS
N
native-api 已提交
65 66
      #further jobs in the list will use the same stage until the next assignment
    - stage: final
I
Ivan Pozdeev 已提交
67
      os: osx
I
Ivan Pozdeev 已提交
68
      osx_image: xcode8.3
69 70 71
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
72
        - ENABLE_HEADLESS=0
N
native-api 已提交
73 74 75
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
76
      osx_image: xcode8.3
77 78 79
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
80
        - ENABLE_HEADLESS=0
N
native-api 已提交
81 82 83
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
84
      osx_image: xcode8.3
85 86 87
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
88
        - ENABLE_HEADLESS=0
N
native-api 已提交
89 90 91
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
92
      osx_image: xcode8.3
93 94 95
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
96
        - ENABLE_HEADLESS=0
N
native-api 已提交
97 98 99
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
100
      osx_image: xcode8.3
101 102 103 104
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
105
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
106 107
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
108 109

    # headless builds for MacOS
N
native-api 已提交
110
    - os: osx
I
Ivan Pozdeev 已提交
111
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
112 113 114 115
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
116 117 118
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
119
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
120 121 122 123
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
124 125 126
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
127
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
128 129 130 131
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
132 133 134
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
135
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
136 137 138 139
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
140 141 142
      workspaces:
        use: brew_cache
    - 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
N
native-api 已提交
149 150
      workspaces:
        use: brew_cache
151

O
Olli-Pekka Heinisuo 已提交
152
    # Contrib builds for MacOS
N
native-api 已提交
153
    - os: osx
I
Ivan Pozdeev 已提交
154
      osx_image: xcode8.3
155 156
      env:
        - MB_PYTHON_VERSION=2.7
O
Olli-Pekka Heinisuo 已提交
157
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
158
        - ENABLE_HEADLESS=0
N
native-api 已提交
159 160 161
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
162
      osx_image: xcode8.3
163 164
      env:
        - MB_PYTHON_VERSION=3.4
165
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
166
        - ENABLE_HEADLESS=0
N
native-api 已提交
167 168 169
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
170
      osx_image: xcode8.3
171 172
      env:
        - MB_PYTHON_VERSION=3.5
173
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
174
        - ENABLE_HEADLESS=0
N
native-api 已提交
175 176 177
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
178
      osx_image: xcode8.3
179 180
      env:
        - MB_PYTHON_VERSION=3.6
181
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
182
        - ENABLE_HEADLESS=0
N
native-api 已提交
183 184 185
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
186
      osx_image: xcode8.3
187 188 189 190
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
191
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
192 193
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
194 195

    # headless contrib builds for MacOS
N
native-api 已提交
196
    - os: osx
I
Ivan Pozdeev 已提交
197
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
198 199 200 201
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
202 203 204
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
205
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
206 207 208 209
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
210 211 212
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
213
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
214 215 216 217
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
218 219 220
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
221
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
222 223 224 225
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
226 227 228
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
229
      osx_image: xcode8.3
230 231 232 233
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
234
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
235 236
      workspaces:
        use: brew_cache
237

O
Olli-Pekka Heinisuo 已提交
238
    # default builds for Linux
239 240 241 242
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
243
        - ENABLE_HEADLESS=0
244
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
245 246
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
247 248 249 250 251 252
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
253
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
254 255
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
256 257 258 259 260 261
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
262 263
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
264 265 266 267 268 269 270
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
271 272
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
273 274 275 276 277
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
278
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
279 280
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
281 282 283 284 285 286
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
287 288
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
289 290 291 292 293
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
294
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
295 296
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
297 298 299 300 301 302
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
303 304
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
305 306 307 308 309 310
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.11.3
311
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
312 313
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
314 315 316 317 318 319 320
    - 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 已提交
321 322
      cache:
        directories: $HOME/.ccache
323 324 325 326 327 328
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.14.5
329
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
330 331
      cache:
        directories: $HOME/.ccache
332 333 334 335 336 337 338
    - 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 已提交
339 340
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
341 342 343 344 345 346 347

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

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

O
Olli-Pekka Heinisuo 已提交
550 551 552 553 554 555 556

    # headless contrib builds for Linux
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
557
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
558 559
      cache:
        directories: $HOME/.ccache
560 561 562 563
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
564
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
565
        - ENABLE_HEADLESS=1
566
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
567 568
      cache:
        directories: $HOME/.ccache
569 570 571 572
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
573
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
574
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
575 576
      cache:
        directories: $HOME/.ccache
577 578 579 580 581
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
582
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
583
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
584 585
      cache:
        directories: $HOME/.ccache
586 587 588
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
589
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
590
        - ENABLE_HEADLESS=1
591
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
592 593
      cache:
        directories: $HOME/.ccache
594 595 596 597
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.4
        - PLAT=i686
598
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
599
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
600 601
      cache:
        directories: $HOME/.ccache
602 603 604
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
605
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
606
        - ENABLE_HEADLESS=1
607
        - PLAT=x86_64
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
624
        - PLAT=x86_64
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
642
        - PLAT=x86_64
I
Ivan Pozdeev 已提交
643 644
      cache:
        directories: $HOME/.ccache
645 646 647 648 649 650 651
    - 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 已提交
652 653
      cache:
        directories: $HOME/.ccache
654

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

674
    if [ -n "$IS_OSX" ]; then
O
Olli-Pekka Heinisuo 已提交
675
        echo "homebrew"
676 677 678 679 680 681
        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 '
682 683 684 685
                    cd $(dirname '\''{}'\'') || echo "status: $?"
                    git clean -fxd || echo "status: $?"
                    sleep 1 || echo "status: $?"
                    git status || echo "status: $?"' \; || echo "status: $?"
I
Ivan Pozdeev 已提交
686

687 688
        brew_cache_cleanup
    fi
O
Olli-Pekka Heinisuo 已提交
689
    echo "end"
690 691 692 693 694 695 696 697 698 699 700 701
    # 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
702
    install_run $PLAT && rc=$? || rc=$?
703 704
    set +x

705 706 707
    #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 已提交
708

709 710 711 712
    test "$rc" -eq 0

before_cache: |
    # Cleanup dirs to be cached
713
    set -e; set -x
714 715 716
    if [ -n "$IS_OSX" ]; then

        # When Taps is cached, this dir causes "Error: file exists" on `brew update`
717 718 719
        if [ -e "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask" ]; then
            rm -rf "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask"
        fi
720 721

        brew_cache_cleanup
I
Ivan Pozdeev 已提交
722

723
    fi
724
    set +x; set +e
I
Ivan Pozdeev 已提交
725

726 727 728 729
after_success: |
    # Upload wheels to pypi if requested
    if [ -n "$TRAVIS_TAG" ]; then
        set -x
O
Olli-Pekka Heinisuo 已提交
730 731 732 733 734

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

736
        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
O
Olli-Pekka Heinisuo 已提交
737 738
          pip install twine
          pip install --upgrade pyOpenSSL
739 740
        fi

741
        if [[ $ENABLE_CONTRIB == 0 ]]; then
O
Olli-Pekka Heinisuo 已提交
742 743 744 745 746
            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
747
        else
O
Olli-Pekka Heinisuo 已提交
748 749 750 751 752
            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
753 754 755 756 757 758 759
        fi

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