.travis.yml 20.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
        # params to bdist_wheel. used to set osx build target.
7
        - CONFIG_PATH="travis_config.sh"
8
        - USE_CCACHE=1
O
Olli-Pekka Heinisuo 已提交
9
        - UNICODE_WIDTH=32
O
Olli-Pekka Heinisuo 已提交
10
        - SDIST=0
11 12 13 14 15 16

# 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

17 18 19
# https://docs.travis-ci.com/user/caching
cache:
  directories:
I
Ivan Pozdeev 已提交
20 21
    # `cache: ccache: true` has no effect if `language:` is not `c` or `cpp`
    - $HOME/.ccache
I
Ivan Pozdeev 已提交
22

I
Ivan Pozdeev 已提交
23 24 25 26 27
# 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
28

29
jobs:
30
  fast_finish: true
O
Olli-Pekka Heinisuo 已提交
31
  # Travis exclude is buggy, this seems to be the only way to disable default build
32
  exclude:
O
test  
Olli-Pekka Heinisuo 已提交
33
    - language: ruby
34
  include:
N
native-api 已提交
35
    - os: osx
36 37
      env:
        - MB_PYTHON_VERSION=3.8
O
Olli-Pekka Heinisuo 已提交
38
      language: generic
O
Olli-Pekka Heinisuo 已提交
39
      osx_image: xcode9.4
N
native-api 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      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 已提交
61 62
    # source distributions
    - os: linux
O
Olli-Pekka Heinisuo 已提交
63
      stage: s1
64
      script: skip
O
Olli-Pekka Heinisuo 已提交
65 66 67 68 69 70 71 72
      env:
        - SDIST=1
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
      python: "3.8"
      language: python
      dist: xenial
    - os: linux
O
Olli-Pekka Heinisuo 已提交
73
      stage: s1
74
      script: skip
O
Olli-Pekka Heinisuo 已提交
75 76 77 78 79 80 81 82
      env:
        - SDIST=1
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
      python: "3.8"
      language: python
      dist: xenial
    - os: linux
O
Olli-Pekka Heinisuo 已提交
83
      stage: s1
84
      script: skip
O
Olli-Pekka Heinisuo 已提交
85 86 87 88 89 90 91 92
      env:
        - SDIST=1
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
      python: "3.8"
      language: python
      dist: xenial
    - os: linux
O
Olli-Pekka Heinisuo 已提交
93
      stage: s1
94
      script: skip
O
Olli-Pekka Heinisuo 已提交
95 96 97 98 99 100 101 102
      env:
        - SDIST=1
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
      python: "3.8"
      language: python
      dist: xenial

O
Olli-Pekka Heinisuo 已提交
103
    # default builds for MacOS
N
native-api 已提交
104 105 106
      #further jobs in the list will use the same stage until the next assignment
    - stage: final
    - os: osx
107
      language: generic
O
Olli-Pekka Heinisuo 已提交
108
      osx_image: xcode9.4
109 110 111
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
112
        - ENABLE_HEADLESS=0
N
native-api 已提交
113 114 115
      workspaces:
        use: brew_cache
    - os: osx
116
      language: generic
O
Olli-Pekka Heinisuo 已提交
117
      osx_image: xcode9.4
118 119 120
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
O
Olli-Pekka Heinisuo 已提交
121
        - ENABLE_HEADLESS=0
N
native-api 已提交
122 123 124
      workspaces:
        use: brew_cache
    - os: osx
125
      language: generic
O
Olli-Pekka Heinisuo 已提交
126
      osx_image: xcode9.4
127 128 129 130
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
131
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
132 133
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
134
    - os: osx
135
      language: generic
O
Olli-Pekka Heinisuo 已提交
136
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
137 138 139 140 141 142 143
      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 已提交
144 145

    # headless builds for MacOS
N
native-api 已提交
146
    - os: osx
147
      language: generic
O
Olli-Pekka Heinisuo 已提交
148
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
149 150 151 152
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
153 154 155
      workspaces:
        use: brew_cache
    - os: osx
156
      language: generic
O
Olli-Pekka Heinisuo 已提交
157
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
158 159 160 161
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
N
native-api 已提交
162 163 164
      workspaces:
        use: brew_cache
    - os: osx
165
      language: generic
O
Olli-Pekka Heinisuo 已提交
166
      osx_image: xcode9.4
167 168 169 170
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
171
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
172 173
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
174
    - os: osx
175
      language: generic
O
Olli-Pekka Heinisuo 已提交
176
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
177 178 179 180 181 182 183
      env:
        - MB_PYTHON_VERSION=3.8
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=1
        - TEST_DEPENDS=numpy==1.17.3
      workspaces:
        use: brew_cache
184

O
Olli-Pekka Heinisuo 已提交
185
    # Contrib builds for MacOS
N
native-api 已提交
186
    - os: osx
187
      language: generic
O
Olli-Pekka Heinisuo 已提交
188
      osx_image: xcode9.4
189 190
      env:
        - MB_PYTHON_VERSION=3.5
191
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
192
        - ENABLE_HEADLESS=0
N
native-api 已提交
193 194 195
      workspaces:
        use: brew_cache
    - os: osx
196
      language: generic
O
Olli-Pekka Heinisuo 已提交
197
      osx_image: xcode9.4
198 199
      env:
        - MB_PYTHON_VERSION=3.6
200
        - ENABLE_CONTRIB=1
O
Olli-Pekka Heinisuo 已提交
201
        - ENABLE_HEADLESS=0
N
native-api 已提交
202 203 204
      workspaces:
        use: brew_cache
    - os: osx
205
      language: generic
O
Olli-Pekka Heinisuo 已提交
206
      osx_image: xcode9.4
207 208 209 210
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=0
211
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
212 213
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
214
    - os: osx
215
      language: generic
O
Olli-Pekka Heinisuo 已提交
216
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
217 218 219 220 221 222 223
      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 已提交
224 225

    # headless contrib builds for MacOS
N
native-api 已提交
226
    - os: osx
227
      language: generic
O
Olli-Pekka Heinisuo 已提交
228
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
229 230 231 232
      env:
        - MB_PYTHON_VERSION=3.5
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
233 234 235
      workspaces:
        use: brew_cache
    - os: osx
236
      language: generic
O
Olli-Pekka Heinisuo 已提交
237
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
238 239 240 241
      env:
        - MB_PYTHON_VERSION=3.6
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
N
native-api 已提交
242 243 244
      workspaces:
        use: brew_cache
    - os: osx
245
      language: generic
O
Olli-Pekka Heinisuo 已提交
246
      osx_image: xcode9.4
247 248 249 250
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
251
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
252 253
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
254
    - os: osx
255
      language: generic
O
Olli-Pekka Heinisuo 已提交
256
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
257 258 259 260 261 262 263
      env:
        - MB_PYTHON_VERSION=3.8
        - ENABLE_CONTRIB=1
        - ENABLE_HEADLESS=1
        - TEST_DEPENDS=numpy==1.17.3
      workspaces:
        use: brew_cache
264

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

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

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

O
Olli-Pekka Heinisuo 已提交
553 554

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

650 651 652
# The first line is printed in the folding header in Travis output
before_install: |
    set -e
I
Ivan Pozdeev 已提交
653

O
Olli-Pekka Heinisuo 已提交
654 655 656 657 658
    if [[ $SDIST == 0 ]]; then
      # Check out and prepare the source
      # Multibuild doesn't have releases, so --depth would break eventually (see
      # https://superuser.com/questions/1240216/server-does-not-allow-request-for-unadvertised)
      git submodule update --init multibuild
659

O
Olli-Pekka Heinisuo 已提交
660
      source multibuild/common_utils.sh
661

O
Olli-Pekka Heinisuo 已提交
662 663
      # https://github.com/matthew-brett/multibuild/issues/116
      if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export ARCH_FLAGS=" "; fi
664

O
Olli-Pekka Heinisuo 已提交
665 666
      source multibuild/travis_steps.sh
      # This sets -x
667

O
Olli-Pekka Heinisuo 已提交
668
      source travis_multibuild_customize.sh
669 670 671 672 673 674 675 676
      echo $ENABLE_CONTRIB > contrib.enabled
      echo $ENABLE_HEADLESS > headless.enabled

      if [ -n "$IS_OSX" ]; then
        echo "homebrew"
        TAPS="$(brew --repository)/Library/Taps"
        if [ -e "$TAPS/caskroom/homebrew-cask" -a -e "$TAPS/homebrew/homebrew-cask" ]; then
            rm -rf "$TAPS/caskroom/homebrew-cask"
O
Olli-Pekka Heinisuo 已提交
677
        fi
678 679 680 681 682 683 684 685 686 687
        find "$TAPS" -type d -name .git -exec \
                bash -xec '
                    cd $(dirname '\''{}'\'') || echo "status: $?"
                    git clean -fxd || echo "status: $?"
                    sleep 1 || echo "status: $?"
                    git status || echo "status: $?"' \; || echo "status: $?"
        brew_cache_cleanup
      fi
      echo "end"
      # Not interested in travis internal scripts' output
688
    fi
O
Olli-Pekka Heinisuo 已提交
689

690 691 692 693 694
    set +x

install: |
    # Build and package
    set -x
O
Olli-Pekka Heinisuo 已提交
695

O
Olli-Pekka Heinisuo 已提交
696
    if [[ $SDIST == 1 ]]; then
697 698 699
      python -m pip install --upgrade pip
      python -m pip install scikit-build
      python setup.py sdist
O
Olli-Pekka Heinisuo 已提交
700
    else
701
      build_wheel $REPO_DIR $PLAT
O
Olli-Pekka Heinisuo 已提交
702 703
    fi

704 705 706 707
    set +x

script: |
    # Install and run tests
O
Olli-Pekka Heinisuo 已提交
708 709 710 711
    set -x
    if [[ $SDIST == 1 ]]; then
      echo "skipping tests because of sdist"
    else
712
      install_run $PLAT && rc=$? || rc=$?
O
Olli-Pekka Heinisuo 已提交
713 714
    fi

O
Olli-Pekka Heinisuo 已提交
715 716
    set +x

O
Olli-Pekka Heinisuo 已提交
717 718
    #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
719 720 721 722 723
    trap ERR
    test "$rc" -eq 0

before_cache: |
    # Cleanup dirs to be cached
724
    set -e; set -x
725 726
    if [ -n "$IS_OSX" ]; then

727 728 729 730
      # When Taps is cached, this dir causes "Error: file exists" on `brew update`
      if [ -e "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask" ]; then
        rm -rf "$(brew --repository)/Library/Taps/homebrew/homebrew-cask/homebrew-cask"
      fi
731

732
      brew_cache_cleanup
I
Ivan Pozdeev 已提交
733

734
    fi
735
    set +x; set +e
I
Ivan Pozdeev 已提交
736

737
after_success: |
O
Olli-Pekka Heinisuo 已提交
738
    # Upload wheels to pypi if tag is set
O
Olli-Pekka Heinisuo 已提交
739

O
Olli-Pekka Heinisuo 已提交
740
    set -x
741

O
Olli-Pekka Heinisuo 已提交
742
    if [ -n "$TRAVIS_TAG" ]; then
743

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

      if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
        pip install --user twine
        pip install --user --upgrade six
O
Olli-Pekka Heinisuo 已提交
761

O
Olli-Pekka Heinisuo 已提交
762 763 764 765
        if [[ $SDIST == 1 ]]; then
          twine upload -u ${USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/dist
        else
          twine upload -u ${USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/wheelhouse/opencv*
766 767
        fi

O
Olli-Pekka Heinisuo 已提交
768
      fi
O
Olli-Pekka Heinisuo 已提交
769

O
Olli-Pekka Heinisuo 已提交
770 771 772 773 774 775
      if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
        # macpython 3.5 doesn't support recent TLS protocols which causes twine
        # upload to fail, so we use the system Python to run twine
        /usr/bin/python -m ensurepip --user
        /usr/bin/python -m pip install --user -U pip
        /usr/bin/python -m pip install --user -U -I twine
O
Olli-Pekka Heinisuo 已提交
776

O
Olli-Pekka Heinisuo 已提交
777 778 779 780
        if [[ $SDIST == 1 ]]; then
          /usr/bin/python -m upload -u ${USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/dist
        else
          /usr/bin/python -m upload -u ${USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/wheelhouse/opencv*
O
Olli-Pekka Heinisuo 已提交
781
        fi
782

O
Olli-Pekka Heinisuo 已提交
783 784
      fi

785
    fi
O
Olli-Pekka Heinisuo 已提交
786 787 788 789 790 791 792 793 794 795 796

    # Save to Azure storage always

    if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
      curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    else
      brew install azure-cli
    fi

    az storage container create -n ${TRAVIS_COMMIT} --public-access blob

O
Olli-Pekka Heinisuo 已提交
797
    if [[ $SDIST == 1 ]]; then
O
Olli-Pekka Heinisuo 已提交
798 799
      az storage blob upload-batch -d ${TRAVIS_COMMIT} -s ${TRAVIS_BUILD_DIR}/dist --pattern *.gz
    else
O
Olli-Pekka Heinisuo 已提交
800
      az storage blob upload-batch -d ${TRAVIS_COMMIT} -s ${TRAVIS_BUILD_DIR}/wheelhouse --pattern opencv*.whl
O
Olli-Pekka Heinisuo 已提交
801 802 803 804
    fi

    set +x