.travis.yml 9.93 KB
Newer Older
1
language: php
2
sudo: false
3
dist: trusty
4 5 6 7 8 9

cache:
    directories:
        - vendor
        - $HOME/.composer/cache

10
php:
11
  - 7.1
Luís Cobucci's avatar
Luís Cobucci committed
12
  - 7.2
13
  - nightly
14

15
env:
16
  - DB=sqlite
17
  - DB=mysql
18
  - DB=mysqli
19

Luís Cobucci's avatar
Luís Cobucci committed
20
before_install:
21 22 23 24
  - |
    if [ "x$COVERAGE" != "xyes" ]; then
      mv ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini{,.disabled} || true
    fi
Luís Cobucci's avatar
Luís Cobucci committed
25

26
before_script:
27
  - if [[ "$DB" == "mysql" || "$DB" == "mysqli" || "$DB" == *"mariadb"* ]]; then mysql < tests/travis/create-mysql-schema.sql; fi;
28 29 30 31 32
  - |
    if [ "x$COVERAGE" == "xyes" ] && [[ ! $(php -m | grep -si xdebug) ]]; then
      echo "xdebug is required for coverage"
      exit 1
    fi
33

Luís Cobucci's avatar
Luís Cobucci committed
34
install:
35 36
  - rm composer.lock
  - travis_retry composer -n update --prefer-dist
Luís Cobucci's avatar
Luís Cobucci committed
37

38 39 40 41 42 43 44 45 46 47 48
script:
  - |
    if [ "x$COVERAGE" == "xyes" ]; then
       ./vendor/bin/phpunit --configuration tests/travis/$DB.travis.xml --coverage-clover clover.xml
    else
       ./vendor/bin/phpunit --configuration tests/travis/$DB.travis.xml
    fi

after_script:
  - |
    if [ "x$COVERAGE" == "xyes" ]; then
49 50
      travis_retry wget https://github.com/scrutinizer-ci/ocular/releases/download/1.5.2/ocular.phar
      travis_retry php ocular.phar code-coverage:upload --format=php-clover clover.xml
51
    fi
52

Luís Cobucci's avatar
Luís Cobucci committed
53 54
jobs:
  allow_failures:
55
    - php: nightly
56
    - env: DB=pgsql POSTGRESQL_VERSION=11.0
57

58 59 60 61 62 63 64 65
  exclude:
    - php: 7.1
      env: DB=sqlite
    - php: 7.1
      env: DB=mysql
    - php: 7.1
      env: DB=mysqli

Luís Cobucci's avatar
Luís Cobucci committed
66 67 68
  include:
    - stage: Test
      php: 7.1
69 70 71 72 73 74 75 76 77 78 79 80 81
      env: DB=sqlite COVERAGE=yes

    - stage: Test
      php: 7.1
      env: DB=mysql COVERAGE=yes

    - stage: Test
      php: 7.1
      env: DB=mysqli COVERAGE=yes

    - stage: Test
      php: 7.1
      env: DB=mysql MYSQL_VERSION=5.7 COVERAGE=yes
82
      sudo: required
Luís Cobucci's avatar
Luís Cobucci committed
83 84 85 86 87 88 89 90 91 92
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
    - stage: Test
      php: 7.2
      env: DB=mysql MYSQL_VERSION=5.7
      sudo: required
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
    - stage: Test
      php: nightly
93 94
      env: DB=mysql MYSQL_VERSION=5.7
      sudo: required
Luís Cobucci's avatar
Luís Cobucci committed
95 96
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
97

Luís Cobucci's avatar
Luís Cobucci committed
98 99
    - stage: Test
      php: 7.1
100
      env: DB=mysqli MYSQL_VERSION=5.7 COVERAGE=yes
101
      sudo: required
Luís Cobucci's avatar
Luís Cobucci committed
102 103 104 105 106 107 108 109 110 111
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
    - stage: Test
      php: 7.2
      env: DB=mysqli MYSQL_VERSION=5.7
      sudo: required
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
    - stage: Test
      php: nightly
112 113
      env: DB=mysqli MYSQL_VERSION=5.7
      sudo: required
Luís Cobucci's avatar
Luís Cobucci committed
114 115
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
116

Luís Cobucci's avatar
Luís Cobucci committed
117 118
    - stage: Test
      php: 7.1
119
      env: DB=mariadb MARIADB_VERSION=10.0 COVERAGE=yes
120 121
      addons:
        mariadb: 10.0
Luís Cobucci's avatar
Luís Cobucci committed
122 123 124 125 126 127 128
    - stage: Test
      php: 7.2
      env: DB=mariadb MARIADB_VERSION=10.0
      addons:
        mariadb: 10.0
    - stage: Test
      php: nightly
129 130 131 132
      env: DB=mariadb MARIADB_VERSION=10.0
      addons:
        mariadb: 10.0

Luís Cobucci's avatar
Luís Cobucci committed
133 134
    - stage: Test
      php: 7.1
135
      env: DB=mariadb MARIADB_VERSION=10.1 COVERAGE=yes
136 137
      addons:
        mariadb: 10.1
Luís Cobucci's avatar
Luís Cobucci committed
138 139 140 141 142 143 144
    - stage: Test
      php: 7.2
      env: DB=mariadb MARIADB_VERSION=10.1
      addons:
        mariadb: 10.1
    - stage: Test
      php: nightly
145 146 147 148
      env: DB=mariadb MARIADB_VERSION=10.1
      addons:
        mariadb: 10.1

149 150
    - stage: Test
      php: 7.1
151
      env: DB=mariadb MARIADB_VERSION=10.2 COVERAGE=yes
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
      addons:
        mariadb: 10.2
    - stage: Test
      php: 7.2
      env: DB=mariadb MARIADB_VERSION=10.2
      addons:
        mariadb: 10.2
    - stage: Test
      php: nightly
      env: DB=mariadb MARIADB_VERSION=10.2
      addons:
        mariadb: 10.2

    - stage: Test
      php: 7.1
167
      env: DB=mariadb.mysqli MARIADB_VERSION=10.2 COVERAGE=yes
168 169 170 171 172 173 174 175 176 177 178 179 180
      addons:
        mariadb: 10.2
    - stage: Test
      php: 7.2
      env: DB=mariadb.mysqli MARIADB_VERSION=10.2
      addons:
        mariadb: 10.2
    - stage: Test
      php: nightly
      env: DB=mariadb.mysqli MARIADB_VERSION=10.2
      addons:
        mariadb: 10.2

181 182 183 184 185 186 187 188 189 190 191 192
    - stage: Test
      php: 7.2
      env: DB=mariadb MARIADB_VERSION=10.3
      addons:
          mariadb: 10.3

    - stage: Test
      php: 7.2
      env: DB=mariadb.mysqli MARIADB_VERSION=10.3
      addons:
          mariadb: 10.3

Luís Cobucci's avatar
Luís Cobucci committed
193 194
    - stage: Test
      php: 7.1
195
      env: DB=pgsql POSTGRESQL_VERSION=9.2 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
196 197
      services:
        - postgresql
198 199
      addons:
        postgresql: "9.2"
Luís Cobucci's avatar
Luís Cobucci committed
200 201 202
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.2
203 204 205 206
      services:
        - postgresql
      addons:
        postgresql: "9.2"
Luís Cobucci's avatar
Luís Cobucci committed
207 208 209
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.2
210 211
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
212 213
      addons:
        postgresql: "9.2"
214

Luís Cobucci's avatar
Luís Cobucci committed
215 216
    - stage: Test
      php: 7.1
217
      env: DB=pgsql POSTGRESQL_VERSION=9.3 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
218 219
      services:
        - postgresql
220 221
      addons:
        postgresql: "9.3"
Luís Cobucci's avatar
Luís Cobucci committed
222 223 224
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.3
225 226 227 228
      services:
        - postgresql
      addons:
        postgresql: "9.3"
Luís Cobucci's avatar
Luís Cobucci committed
229 230 231
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.3
232 233
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
234 235
      addons:
        postgresql: "9.3"
236

Luís Cobucci's avatar
Luís Cobucci committed
237 238
    - stage: Test
      php: 7.1
239
      env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
240 241
      services:
        - postgresql
242 243
      addons:
        postgresql: "9.4"
Luís Cobucci's avatar
Luís Cobucci committed
244 245 246
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.4
247 248 249 250
      services:
        - postgresql
      addons:
        postgresql: "9.4"
Luís Cobucci's avatar
Luís Cobucci committed
251 252 253
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.4
254 255
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
256 257
      addons:
        postgresql: "9.4"
258

Luís Cobucci's avatar
Luís Cobucci committed
259 260
    - stage: Test
      php: 7.1
261
      env: DB=pgsql POSTGRESQL_VERSION=9.5 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
262 263
      services:
        - postgresql
264 265
      addons:
        postgresql: "9.5"
Luís Cobucci's avatar
Luís Cobucci committed
266 267 268
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.5
269 270 271 272
      services:
        - postgresql
      addons:
        postgresql: "9.5"
Luís Cobucci's avatar
Luís Cobucci committed
273 274 275
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.5
276 277
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
278 279
      addons:
        postgresql: "9.5"
280

Luís Cobucci's avatar
Luís Cobucci committed
281 282
    - stage: Test
      php: 7.1
283
      env: DB=pgsql POSTGRESQL_VERSION=9.6 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
284 285
      services:
        - postgresql
286 287
      addons:
        postgresql: "9.6"
Luís Cobucci's avatar
Luís Cobucci committed
288 289 290
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.6
291 292 293 294
      services:
        - postgresql
      addons:
        postgresql: "9.6"
Luís Cobucci's avatar
Luís Cobucci committed
295 296 297
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.6
298 299
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
300 301
      addons:
        postgresql: "9.6"
302

303 304
    - stage: Test
      php: 7.1
305
      env: DB=pgsql POSTGRESQL_VERSION=10.0 COVERAGE=yes
306 307 308 309 310 311 312 313 314
      sudo: required
      services:
        - postgresql
      addons:
        postgresql: "9.6"
      before_script:
        - bash ./tests/travis/install-postgres-10.sh
    - stage: Test
      php: 7.2
315
      env: DB=pgsql POSTGRESQL_VERSION=10.0
316 317 318 319 320 321 322 323 324
      sudo: required
      services:
        - postgresql
      addons:
        postgresql: "9.6"
      before_script:
        - bash ./tests/travis/install-postgres-10.sh
    - stage: Test
      php: nightly
325
      env: DB=pgsql POSTGRESQL_VERSION=10.0
326 327 328 329 330 331 332 333
      sudo: required
      services:
        - postgresql
      addons:
        postgresql: "9.6"
      before_script:
        - bash ./tests/travis/install-postgres-10.sh

334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
    - stage: Test
      php: 7.1
      env: DB=pgsql POSTGRESQL_VERSION=11.0
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-postgres-11.sh
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=11.0
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-postgres-11.sh
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=11.0
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-postgres-11.sh

359
    - stage: Test
360
      env: DB=sqlsrv COVERAGE=yes
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-mssql-$DB.sh
        - bash ./tests/travis/install-mssql.sh
    - stage: Test
      php: 7.2
      env: DB=sqlsrv
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-mssql-$DB.sh
        - bash ./tests/travis/install-mssql.sh

    - stage: Test
      php: 7.1
379
      env: DB=pdo_sqlsrv COVERAGE=yes
380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-mssql-$DB.sh
        - bash ./tests/travis/install-mssql.sh
    - stage: Test
      php: 7.2
      env: DB=pdo_sqlsrv
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-mssql-$DB.sh
        - bash ./tests/travis/install-mssql.sh

396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413
    - stage: Test
      env: DB=ibm_db2 COVERAGE=yes
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-db2.sh
        - bash ./tests/travis/install-db2-$DB.sh
    - stage: Test
      php: 7.2
      env: DB=ibm_db2
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-db2.sh
        - bash ./tests/travis/install-db2-$DB.sh

414 415 416 417 418 419 420 421 422 423 424 425 426 427
    - stage: Test
      php: 7.1
      env: DB=sqlite DEPENDENCIES=low
      install:
        - travis_retry composer update --prefer-dist --prefer-lowest

    - stage: Test
      if: type = cron
      php: 7.2
      env: DB=sqlite DEPENDENCIES=dev
      install:
        - composer config minimum-stability dev
        - travis_retry composer update --prefer-dist

428 429 430 431 432
    - stage: Code Quality
      env: DB=none STATIC_ANALYSIS
      install: travis_retry composer update --prefer-dist
      script: vendor/bin/phpstan analyse

Luís Cobucci's avatar
Luís Cobucci committed
433
    - stage: Coding standard
434
      php: 7.1
435
      install: travis_retry composer install --prefer-dist
Luís Cobucci's avatar
Luís Cobucci committed
436 437
      script:
        - ./vendor/bin/phpcs