.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
        - UNICODE_WIDTH=32
11
        - MB_PYTHON_VERSION=3.7
O
Olli-Pekka Heinisuo 已提交
12
        - MB_PYTHON_OSX_VER=10.9
O
Olli-Pekka Heinisuo 已提交
13

14 15 16

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

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

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

38
matrix:
39
  fast_finish: true
40
  include:
41

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

    # headless builds for MacOS
N
native-api 已提交
103
    - os: osx
I
Ivan Pozdeev 已提交
104
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
105 106 107 108
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
109 110 111
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
112
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
113 114 115 116
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
117 118 119
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
120
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
121 122 123 124
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
125 126 127
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
128
      osx_image: xcode8.3
129 130 131 132
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
133
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
134 135
      workspaces:
        use: brew_cache
136

O
Olli-Pekka Heinisuo 已提交
137
    # Contrib builds for MacOS
N
native-api 已提交
138
    - os: osx
I
Ivan Pozdeev 已提交
139
      osx_image: xcode8.3
140 141
      env:
        - MB_PYTHON_VERSION=2.7
O
Olli-Pekka Heinisuo 已提交
142
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
143
        - ENABLE_HEADLESS=0
N
native-api 已提交
144 145 146
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
147
      osx_image: xcode8.3
148 149
      env:
        - MB_PYTHON_VERSION=3.5
150
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
151
        - ENABLE_HEADLESS=0
N
native-api 已提交
152 153 154
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
155
      osx_image: xcode8.3
156 157
      env:
        - MB_PYTHON_VERSION=3.6
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 166 167
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
168
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
169 170
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
171 172

    # headless contrib builds for MacOS
N
native-api 已提交
173
    - os: osx
I
Ivan Pozdeev 已提交
174
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
175 176 177 178
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
179 180 181
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
182
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
183 184 185 186
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
187 188 189
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
190
      osx_image: xcode8.3
O
Olli-Pekka Heinisuo 已提交
191 192 193 194
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
195 196 197
      workspaces:
        use: brew_cache
    - os: osx
I
Ivan Pozdeev 已提交
198
      osx_image: xcode8.3
199 200 201 202
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
203
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
204 205
      workspaces:
        use: brew_cache
206

O
Olli-Pekka Heinisuo 已提交
207
    # default builds for Linux
208 209 210 211
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
212
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
213 214
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
215 216 217 218 219 220
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
221 222
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
223 224 225 226 227 228
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
229 230
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
231 232 233 234 235 236 237
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
238 239
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
240 241 242 243 244
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
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=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
253 254
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
255 256 257 258 259 260
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.11.3
I
Ivan Pozdeev 已提交
261 262
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
263 264 265 266 267 268 269
    - 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 已提交
270 271
      cache:
        directories: $HOME/.ccache
272 273 274 275 276 277
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
278 279
      cache:
        directories: $HOME/.ccache
280 281 282 283 284 285 286
    - 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 已提交
287 288
      cache:
        directories: $HOME/.ccache
289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305
    - 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 已提交
306 307 308 309 310 311 312

    # headless builds for Linux
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
313 314
      cache:
        directories: $HOME/.ccache
315 316 317 318 319
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
320
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
321 322
      cache:
        directories: $HOME/.ccache
323 324 325 326 327
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
328
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
329 330
      cache:
        directories: $HOME/.ccache
331 332 333 334 335 336
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
337
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
338 339
      cache:
        directories: $HOME/.ccache
340 341 342 343
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
344
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
345 346
      cache:
        directories: $HOME/.ccache
347 348 349 350 351
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
352
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
353 354
      cache:
        directories: $HOME/.ccache
355 356 357 358
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
359
        - ENABLE_HEADLESS=1
360
        - TEST_DEPENDS=numpy==1.11.3
I
Ivan Pozdeev 已提交
361 362
      cache:
        directories: $HOME/.ccache
363 364 365 366 367
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - PLAT=i686
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
368
        - ENABLE_HEADLESS=1
369
        - TEST_DEPENDS=numpy==1.11.3
I
Ivan Pozdeev 已提交
370 371
      cache:
        directories: $HOME/.ccache
372 373 374 375 376 377
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
        - TEST_DEPENDS=numpy==1.14.5
I
Ivan Pozdeev 已提交
378 379
      cache:
        directories: $HOME/.ccache
380 381 382 383 384 385 386
    - 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 已提交
387 388
      cache:
        directories: $HOME/.ccache
389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405
    - 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
406 407

    # contrib builds for Linux
408 409 410
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
411
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
412
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
413 414
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
415 416 417 418 419 420
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
421 422
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
423 424 425 426 427 428
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
429 430
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
431 432 433 434 435 436 437
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
438 439
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
440 441 442 443 444
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
445 446
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
447 448 449 450 451 452
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
        - PLAT=i686
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
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=3.6
        - TEST_DEPENDS=numpy==1.11.3
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
461 462
      cache:
        directories: $HOME/.ccache
O
Olli-Pekka Heinisuo 已提交
463 464 465 466 467 468 469
    - 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 已提交
470 471
      cache:
        directories: $HOME/.ccache
472 473 474 475 476 477
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - TEST_DEPENDS=numpy==1.14.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
I
Ivan Pozdeev 已提交
478 479
      cache:
        directories: $HOME/.ccache
480 481 482 483 484 485 486
    - 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 已提交
487 488
      cache:
        directories: $HOME/.ccache
489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505
    - 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
506

O
Olli-Pekka Heinisuo 已提交
507 508 509 510 511 512 513

    # headless contrib builds for Linux
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
514 515
      cache:
        directories: $HOME/.ccache
516 517 518 519
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - UNICODE_WIDTH=16
520
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
521
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
522 523
      cache:
        directories: $HOME/.ccache
524 525 526 527
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
528
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
529
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
530 531
      cache:
        directories: $HOME/.ccache
532 533 534 535 536
    - os: linux
      env:
        - MB_PYTHON_VERSION=2.7
        - PLAT=i686
        - UNICODE_WIDTH=16
537
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
538
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
539 540
      cache:
        directories: $HOME/.ccache
541 542 543
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.5
544
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
545
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
546 547
      cache:
        directories: $HOME/.ccache
548
    - os: linux
O
Olli-Pekka Heinisuo 已提交
549 550
      env:
        - MB_PYTHON_VERSION=3.5
551
        - PLAT=i686
552
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
553
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
554 555
      cache:
        directories: $HOME/.ccache
556 557 558
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
559
        - TEST_DEPENDS=numpy==1.11.3
560
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
561
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
562 563
      cache:
        directories: $HOME/.ccache
564 565 566 567
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.6
        - PLAT=i686
568
        - TEST_DEPENDS=numpy==1.11.3
569
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
570
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
571 572
      cache:
        directories: $HOME/.ccache
573 574 575 576 577 578
    - os: linux
      env:
        - MB_PYTHON_VERSION=3.7
        - TEST_DEPENDS=numpy==1.14.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
I
Ivan Pozdeev 已提交
579 580
      cache:
        directories: $HOME/.ccache
581 582 583 584 585 586 587
    - 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 已提交
588 589
      cache:
        directories: $HOME/.ccache
590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606
    - 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
607

608 609 610 611
# The first line is printed in the folding header in Travis output
before_install: |
    # Check out and prepare the source
    set -e
612 613
    # Multibuild doesn't have releases, so --depth would break eventually (see
    # https://superuser.com/questions/1240216/server-does-not-allow-request-for-unadvertised)
614
    git submodule update --init multibuild
O
Olli-Pekka Heinisuo 已提交
615
    echo "Source multibuild/common_utils.sh"
616 617 618
    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 已提交
619
    echo "Source multibuild/travis_steps.sh"
620 621
    source multibuild/travis_steps.sh
    # This sets -x
O
Olli-Pekka Heinisuo 已提交
622
    echo "Source travis_multibuild_customize.sh"
623
    source travis_multibuild_customize.sh
624
    echo $ENABLE_CONTRIB > contrib.enabled
O
Olli-Pekka Heinisuo 已提交
625
    echo $ENABLE_HEADLESS > headless.enabled
I
Ivan Pozdeev 已提交
626

627
    if [ -n "$IS_OSX" ]; then
O
Olli-Pekka Heinisuo 已提交
628
        echo "homebrew"
629 630 631 632 633 634
        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 '
635 636 637 638
                    cd $(dirname '\''{}'\'') || echo "status: $?"
                    git clean -fxd || echo "status: $?"
                    sleep 1 || echo "status: $?"
                    git status || echo "status: $?"' \; || echo "status: $?"
I
Ivan Pozdeev 已提交
639

640 641
        brew_cache_cleanup
    fi
O
Olli-Pekka Heinisuo 已提交
642
    echo "end"
643 644 645 646 647 648 649 650 651 652 653 654
    # 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
655
    install_run $PLAT && rc=$? || rc=$?
656 657
    set +x

658 659 660
    #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 已提交
661

662 663 664 665
    test "$rc" -eq 0

before_cache: |
    # Cleanup dirs to be cached
666
    set -e; set -x
667 668 669
    if [ -n "$IS_OSX" ]; then

        # When Taps is cached, this dir causes "Error: file exists" on `brew update`
670 671 672
        if [ -e "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask" ]; then
            rm -rf "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask"
        fi
673 674

        brew_cache_cleanup
I
Ivan Pozdeev 已提交
675

676
    fi
677
    set +x; set +e
I
Ivan Pozdeev 已提交
678

679 680 681 682
after_success: |
    # Upload wheels to pypi if requested
    if [ -n "$TRAVIS_TAG" ]; then
        set -x
O
Olli-Pekka Heinisuo 已提交
683 684 685 686 687

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

689
        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
O
Olli-Pekka Heinisuo 已提交
690 691
          pip install twine
          pip install --upgrade pyOpenSSL
692 693
        fi

694
        if [[ $ENABLE_CONTRIB == 0 ]]; then
O
Olli-Pekka Heinisuo 已提交
695 696 697 698 699
            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
700
        else
O
Olli-Pekka Heinisuo 已提交
701 702 703 704 705
            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
706 707 708 709 710 711 712
        fi

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