.travis.yml 20.3 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
122
        - TEST_DEPENDS=numpy==1.13.3
N
native-api 已提交
123 124 125
      workspaces:
        use: brew_cache
    - os: osx
126
      language: generic
O
Olli-Pekka Heinisuo 已提交
127
      osx_image: xcode9.4
128 129 130 131
      env:
        - MB_PYTHON_VERSION=3.7
        - ENABLE_CONTRIB=0
        - ENABLE_HEADLESS=0
132
        - TEST_DEPENDS=numpy==1.14.5
N
native-api 已提交
133 134
      workspaces:
        use: brew_cache
O
Olli-Pekka Heinisuo 已提交
135
    - os: osx
136
      language: generic
O
Olli-Pekka Heinisuo 已提交
137
      osx_image: xcode9.4
O
Olli-Pekka Heinisuo 已提交
138 139 140 141 142 143 144
      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 已提交
145 146

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

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

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

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

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

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

O
Olli-Pekka Heinisuo 已提交
557 558

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

654 655 656
# The first line is printed in the folding header in Travis output
before_install: |
    set -e
I
Ivan Pozdeev 已提交
657

O
Olli-Pekka Heinisuo 已提交
658 659 660 661 662
    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
663

O
Olli-Pekka Heinisuo 已提交
664
      source multibuild/common_utils.sh
665

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

O
Olli-Pekka Heinisuo 已提交
669 670
      source multibuild/travis_steps.sh
      # This sets -x
671

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

      if [ -n "$IS_OSX" ]; then
O
Olli-Pekka Heinisuo 已提交
677
        export PATH="/usr/local/sbin:$PATH"
678 679 680
        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 已提交
681
        fi
682 683 684 685 686 687 688 689 690 691
        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
692
    fi
O
Olli-Pekka Heinisuo 已提交
693

694 695 696 697 698
    set +x

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

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

708 709 710 711
    set +x

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

O
Olli-Pekka Heinisuo 已提交
719 720
    set +x

O
Olli-Pekka Heinisuo 已提交
721 722
    #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
723 724 725 726 727
    trap ERR
    test "$rc" -eq 0

before_cache: |
    # Cleanup dirs to be cached
728
    set -e; set -x
729 730
    if [ -n "$IS_OSX" ]; then

731 732 733 734
      # 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
735

736
      brew_cache_cleanup
I
Ivan Pozdeev 已提交
737

738
    fi
739
    set +x; set +e
I
Ivan Pozdeev 已提交
740

741
after_success: |
O
Olli-Pekka Heinisuo 已提交
742
    # Upload wheels to pypi if tag is set
O
Olli-Pekka Heinisuo 已提交
743

O
Olli-Pekka Heinisuo 已提交
744
    set -x
745

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

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

      if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
        if [[ $SDIST == 1 ]]; then
O
Olli-Pekka Heinisuo 已提交
764
          pip install twine
O
Olli-Pekka Heinisuo 已提交
765
          twine upload -u ${PYPI_USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/dist/opencv*
O
Olli-Pekka Heinisuo 已提交
766
        else
O
Olli-Pekka Heinisuo 已提交
767 768
          pip install --user twine
          pip install --user --upgrade six
O
Olli-Pekka Heinisuo 已提交
769
          twine upload -u ${PYPI_USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/wheelhouse/opencv*
770 771
        fi

O
Olli-Pekka Heinisuo 已提交
772
      fi
O
Olli-Pekka Heinisuo 已提交
773

O
Olli-Pekka Heinisuo 已提交
774 775 776 777 778 779
      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 已提交
780

O
Olli-Pekka Heinisuo 已提交
781
        if [[ $SDIST == 1 ]]; then
O
Olli-Pekka Heinisuo 已提交
782
          /usr/bin/python -m twine upload -u ${PYPI_USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/dist/opencv*
O
Olli-Pekka Heinisuo 已提交
783
        else
O
Olli-Pekka Heinisuo 已提交
784
          /usr/bin/python -m twine upload -u ${PYPI_USER} -p ${PASS} --skip-existing ${TRAVIS_BUILD_DIR}/wheelhouse/opencv*
O
Olli-Pekka Heinisuo 已提交
785
        fi
786

O
Olli-Pekka Heinisuo 已提交
787 788
      fi

789
    fi
O
Olli-Pekka Heinisuo 已提交
790 791 792 793

    # Save to Azure storage always

    if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
O
Olli-Pekka Heinisuo 已提交
794
      curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
O
Olli-Pekka Heinisuo 已提交
795 796 797 798 799 800
    else
      brew install azure-cli
    fi

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

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

    set +x