.travis.yml 18.8 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
11
        - MB_PYTHON_VERSION=3.7
12 13 14

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

# 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

24 25 26
# https://docs.travis-ci.com/user/caching
cache:
  directories:
I
Ivan Pozdeev 已提交
27 28
    # `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
    - $HOME/.ccache
I
Ivan Pozdeev 已提交
29

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

36
matrix:
37
  fast_finish: true
38
  include:
39

N
native-api 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
    - 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 已提交
63
    # default builds for MacOS
N
native-api 已提交
64 65
      #further jobs in the list will use the same stage until the next assignment
    - stage: final
I
Ivan Pozdeev 已提交
66
      os: osx
I
Ivan Pozdeev 已提交
67
      osx_image: xcode8.3
68 69 70
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
71
        - ENABLE_HEADLESS=0
N
native-api 已提交
72 73 74
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
75
      osx_image: xcode8.3
76 77 78
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
79
        - ENABLE_HEADLESS=0
N
native-api 已提交
80 81 82
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
83
      osx_image: xcode8.3
84 85 86
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
87
        - ENABLE_HEADLESS=0
N
native-api 已提交
88 89 90
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
91
      osx_image: xcode8.3
92 93 94 95
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
96
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
97 98
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
99 100 101 102 103 104 105 106 107
    - os: osx
      osx_image: xcode8.3
      env:
        - MB_PYTHON_VERSION=3.8
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.17.3
      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.5
        - 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.6
        - 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
136 137 138 139
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
140
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
141 142
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
143 144 145 146 147 148 149 150 151
    - os: osx
      osx_image: xcode8.3
      env:
        - MB_PYTHON_VERSION=3.8
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
        - TEST_DEPENDS=numpy==1.17.3
      workspaces:
        use: brew_cache
152

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

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

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

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

    # contrib builds for Linux
442 443 444
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
445
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
446
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
447 448
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
449 450 451 452 453 454
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
455 456
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
457 458 459 460 461 462
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
463 464
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
465 466 467 468 469 470 471
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
472 473
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
474 475 476 477 478
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - 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
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
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.6
        - TEST_DEPENDS=numpy==1.11.3
        - 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 503
    - 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 已提交
504 505
      cache:
        directories: $HOME/.ccache
506 507 508 509 510 511
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - TEST_DEPENDS=numpy==1.14.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
512 513
      cache:
        directories: $HOME/.ccache
514 515 516 517 518 519 520
    - 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 已提交
521 522
      cache:
        directories: $HOME/.ccache
523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.8
        - TEST_DEPENDS=numpy==1.17.3
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
      cache:
        directories: $HOME/.ccache
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.8
        - PLAT=i686
        - TEST_DEPENDS=numpy==1.17.3
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
      cache:
        directories: $HOME/.ccache
540

O
Olli-Pekka Heinisuo 已提交
541 542 543 544 545 546 547

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

642 643 644 645
# The first line is printed in the folding header in Travis output
before_install: |
    # Check out and prepare the source
    set -e
646 647
    # Multibuild doesn't have releases, so --depth would break eventually (see
    # https://superuser.com/questions/1240216/server-does-not-allow-request-for-unadvertised)
648
    git submodule update --init multibuild
O
Olli-Pekka Heinisuo 已提交
649
    echo "Source multibuild/common_utils.sh"
650 651 652
    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 已提交
653
    echo "Source multibuild/travis_steps.sh"
654 655
    source multibuild/travis_steps.sh
    # This sets -x
O
Olli-Pekka Heinisuo 已提交
656
    echo "Source travis_multibuild_customize.sh"
657
    source travis_multibuild_customize.sh
658
    echo $ENABLE_CONTRIB > contrib.enabled
O
Olli-Pekka Heinisuo 已提交
659
    echo $ENABLE_HEADLESS > headless.enabled
I
Ivan Pozdeev 已提交
660

661
    if [ -n "$IS_OSX" ]; then
O
Olli-Pekka Heinisuo 已提交
662
        echo "homebrew"
663 664 665 666 667 668
        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 '
669 670 671 672
                    cd $(dirname '\''{}'\'') || echo "status: $?"
                    git clean -fxd || echo "status: $?"
                    sleep 1 || echo "status: $?"
                    git status || echo "status: $?"' \; || echo "status: $?"
I
Ivan Pozdeev 已提交
673

674 675
        brew_cache_cleanup
    fi
O
Olli-Pekka Heinisuo 已提交
676
    echo "end"
677 678 679 680 681 682 683 684 685 686 687 688
    # 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
689
    install_run $PLAT && rc=$? || rc=$?
690 691
    set +x

692 693 694
    #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 已提交
695

696 697 698 699
    test "$rc" -eq 0

before_cache: |
    # Cleanup dirs to be cached
700
    set -e; set -x
701 702 703
    if [ -n "$IS_OSX" ]; then

        # When Taps is cached, this dir causes "Error: file exists" on `brew update`
704 705 706
        if [ -e "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask" ]; then
            rm -rf "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask"
        fi
707 708

        brew_cache_cleanup
I
Ivan Pozdeev 已提交
709

710
    fi
711
    set +x; set +e
I
Ivan Pozdeev 已提交
712

713 714 715 716
after_success: |
    # Upload wheels to pypi if requested
    if [ -n "$TRAVIS_TAG" ]; then
        set -x
O
Olli-Pekka Heinisuo 已提交
717 718 719 720 721

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

723
        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
O
Olli-Pekka Heinisuo 已提交
724 725
          pip install twine
          pip install --upgrade pyOpenSSL
726 727
        fi

728
        if [[ $ENABLE_CONTRIB == 0 ]]; then
O
Olli-Pekka Heinisuo 已提交
729 730 731 732 733
            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
734
        else
O
Olli-Pekka Heinisuo 已提交
735 736 737 738 739
            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
740 741 742 743 744 745 746
        fi

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