.travis.yml 9.16 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
    - stage: Coding standard
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

Luís Cobucci's avatar
Luís Cobucci committed
181 182
    - stage: Test
      php: 7.1
183
      env: DB=pgsql POSTGRESQL_VERSION=9.2 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
184 185
      services:
        - postgresql
186 187
      addons:
        postgresql: "9.2"
Luís Cobucci's avatar
Luís Cobucci committed
188 189 190
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.2
191 192 193 194
      services:
        - postgresql
      addons:
        postgresql: "9.2"
Luís Cobucci's avatar
Luís Cobucci committed
195 196 197
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.2
198 199
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
200 201
      addons:
        postgresql: "9.2"
202

Luís Cobucci's avatar
Luís Cobucci committed
203 204
    - stage: Test
      php: 7.1
205
      env: DB=pgsql POSTGRESQL_VERSION=9.3 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
206 207
      services:
        - postgresql
208 209
      addons:
        postgresql: "9.3"
Luís Cobucci's avatar
Luís Cobucci committed
210 211 212
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.3
213 214 215 216
      services:
        - postgresql
      addons:
        postgresql: "9.3"
Luís Cobucci's avatar
Luís Cobucci committed
217 218 219
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.3
220 221
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
222 223
      addons:
        postgresql: "9.3"
224

Luís Cobucci's avatar
Luís Cobucci committed
225 226
    - stage: Test
      php: 7.1
227
      env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
228 229
      services:
        - postgresql
230 231
      addons:
        postgresql: "9.4"
Luís Cobucci's avatar
Luís Cobucci committed
232 233 234
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.4
235 236 237 238
      services:
        - postgresql
      addons:
        postgresql: "9.4"
Luís Cobucci's avatar
Luís Cobucci committed
239 240 241
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.4
242 243
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
244 245
      addons:
        postgresql: "9.4"
246

Luís Cobucci's avatar
Luís Cobucci committed
247 248
    - stage: Test
      php: 7.1
249
      env: DB=pgsql POSTGRESQL_VERSION=9.5 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
250 251
      services:
        - postgresql
252 253
      addons:
        postgresql: "9.5"
Luís Cobucci's avatar
Luís Cobucci committed
254 255 256
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.5
257 258 259 260
      services:
        - postgresql
      addons:
        postgresql: "9.5"
Luís Cobucci's avatar
Luís Cobucci committed
261 262 263
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.5
264 265
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
266 267
      addons:
        postgresql: "9.5"
268

Luís Cobucci's avatar
Luís Cobucci committed
269 270
    - stage: Test
      php: 7.1
271
      env: DB=pgsql POSTGRESQL_VERSION=9.6 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
272 273
      services:
        - postgresql
274 275
      addons:
        postgresql: "9.6"
Luís Cobucci's avatar
Luís Cobucci committed
276 277 278
    - stage: Test
      php: 7.2
      env: DB=pgsql POSTGRESQL_VERSION=9.6
279 280 281 282
      services:
        - postgresql
      addons:
        postgresql: "9.6"
Luís Cobucci's avatar
Luís Cobucci committed
283 284 285
    - stage: Test
      php: nightly
      env: DB=pgsql POSTGRESQL_VERSION=9.6
286 287
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
288 289
      addons:
        postgresql: "9.6"
290

291 292
    - stage: Test
      php: 7.1
293
      env: DB=pgsql POSTGRESQL_VERSION=10.0 COVERAGE=yes
294 295 296 297 298 299 300 301 302
      sudo: required
      services:
        - postgresql
      addons:
        postgresql: "9.6"
      before_script:
        - bash ./tests/travis/install-postgres-10.sh
    - stage: Test
      php: 7.2
303
      env: DB=pgsql POSTGRESQL_VERSION=10.0
304 305 306 307 308 309 310 311 312
      sudo: required
      services:
        - postgresql
      addons:
        postgresql: "9.6"
      before_script:
        - bash ./tests/travis/install-postgres-10.sh
    - stage: Test
      php: nightly
313
      env: DB=pgsql POSTGRESQL_VERSION=10.0
314 315 316 317 318 319 320 321
      sudo: required
      services:
        - postgresql
      addons:
        postgresql: "9.6"
      before_script:
        - bash ./tests/travis/install-postgres-10.sh

322
    - stage: Test
323
      env: DB=sqlsrv COVERAGE=yes
324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
      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
342
      env: DB=pdo_sqlsrv COVERAGE=yes
343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
      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

359 360 361 362 363 364 365 366 367 368 369 370 371 372
    - 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

373 374
    - stage: Pull request coding standard
      if: type = pull_request
375
      php: 7.1
376
      install: travis_retry composer install --prefer-dist
377
      script:
378 379 380 381 382
        - |
          if [ $TRAVIS_BRANCH != "master" ]; then
            git remote set-branches --add origin $TRAVIS_BRANCH;
            git fetch origin $TRAVIS_BRANCH;
          fi
383
        - git merge-base origin/$TRAVIS_BRANCH $TRAVIS_PULL_REQUEST_SHA || git fetch origin +refs/pull/$TRAVIS_PULL_REQUEST/merge --unshallow
384 385 386
        - wget https://github.com/diff-sniffer/git/releases/download/0.1.0/git-phpcs.phar
        - php git-phpcs.phar origin/$TRAVIS_BRANCH...$TRAVIS_PULL_REQUEST_SHA

Luís Cobucci's avatar
Luís Cobucci committed
387
    - stage: Coding standard
388
      if: NOT type = pull_request
389
      php: 7.1
390
      install: travis_retry composer install --prefer-dist
Luís Cobucci's avatar
Luís Cobucci committed
391 392
      script:
        - ./vendor/bin/phpcs