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

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

Luís Cobucci's avatar
Luís Cobucci committed
10
before_install:
11
  - phpenv config-rm xdebug.ini || true
12
  - |
13 14
    if [ "x$COVERAGE" == "xyes" ]; then
      pecl install pcov-1.0.0
15
    fi
Luís Cobucci's avatar
Luís Cobucci committed
16

17
before_script:
18
  - if [[ "$DB" == "mysql" || "$DB" == "mysqli" || "$DB" == *"mariadb"* ]]; then mysql < tests/travis/create-mysql-schema.sql; fi;
19

Luís Cobucci's avatar
Luís Cobucci committed
20
install:
21
  - travis_retry composer -n install --prefer-dist
Luís Cobucci's avatar
Luís Cobucci committed
22

23 24 25 26 27 28 29 30 31 32 33
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
34 35
      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
36
    fi
37

Luís Cobucci's avatar
Luís Cobucci committed
38 39
jobs:
  include:
40 41

    - stage: Smoke Testing
42
      php: 7.3
43 44
      env: DB=sqlite COVERAGE=yes
    - stage: Smoke Testing
45
      php: 7.3
46 47 48 49
      env: PHPStan
      install: travis_retry composer install --prefer-dist
      script: vendor/bin/phpstan analyse
    - stage: Smoke Testing
50
      php: 7.3
51 52 53 54
      env: PHP_CodeSniffer
      install: travis_retry composer install --prefer-dist
      script: vendor/bin/phpcs

55 56
    - stage: Test
      php: 7.2
57 58 59 60 61 62 63 64 65 66 67 68 69 70
      env: DB=mysql.docker MYSQL_VERSION=8.0
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-mysql-8.0.sh
    - stage: Test
      php: 7.2
      env: DB=mysqli.docker MYSQL_VERSION=8.0
      sudo: required
      services:
        - docker
      before_script:
        - bash ./tests/travis/install-mysql-8.0.sh
71 72
    - stage: Test
      php: 7.2
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
      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
    - 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: 7.2
      env: DB=sqlite
    - stage: Test
      php: 7.2
      env: DB=sqlsrv
      sudo: required
      services:
        - docker
      before_script:
99
        - bash ./tests/travis/install-sqlsrv-dependencies.sh
100 101 102 103 104 105 106 107 108
        - bash ./tests/travis/install-mssql-sqlsrv.sh
        - bash ./tests/travis/install-mssql.sh
    - stage: Test
      php: 7.2
      env: DB=pdo_sqlsrv
      sudo: required
      services:
        - docker
      before_script:
109
        - bash ./tests/travis/install-sqlsrv-dependencies.sh
110 111 112 113 114 115 116
        - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh
        - bash ./tests/travis/install-mssql.sh
    - stage: Test
      php: 7.3
      env: DB=mysql COVERAGE=yes
    - stage: Test
      php: 7.3
117
      env: DB=mysql.docker MYSQL_VERSION=5.7 COVERAGE=yes
Luís Cobucci's avatar
Luís Cobucci committed
118 119 120
      sudo: required
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
121
    - stage: Test
122
      php: 7.3
123
      env: DB=mysql.docker MYSQL_VERSION=8.0 COVERAGE=yes
124
      sudo: required
125 126
      services:
        - docker
127 128
      before_script:
        - bash ./tests/travis/install-mysql-8.0.sh
Luís Cobucci's avatar
Luís Cobucci committed
129
    - stage: Test
130
      php: 7.3
131 132
      env: DB=mysqli COVERAGE=yes
    - stage: Test
133
      php: 7.3
134
      env: DB=mysqli.docker MYSQL_VERSION=5.7 COVERAGE=yes
135
      sudo: required
Luís Cobucci's avatar
Luís Cobucci committed
136 137
      before_script:
        - bash ./tests/travis/install-mysql-5.7.sh
138
    - stage: Test
139
      php: 7.3
140
      env: DB=mysqli.docker MYSQL_VERSION=8.0 COVERAGE=yes
141
      sudo: required
142 143
      services:
        - docker
144 145
      before_script:
        - bash ./tests/travis/install-mysql-8.0.sh
Luís Cobucci's avatar
Luís Cobucci committed
146
    - stage: Test
147
      php: 7.3
148
      env: DB=mariadb MARIADB_VERSION=10.0 COVERAGE=yes
149 150
      addons:
        mariadb: 10.0
Luís Cobucci's avatar
Luís Cobucci committed
151
    - stage: Test
152
      php: 7.3
153
      env: DB=mariadb MARIADB_VERSION=10.1 COVERAGE=yes
154 155
      addons:
        mariadb: 10.1
156
    - stage: Test
157
      php: 7.3
158
      env: DB=mariadb MARIADB_VERSION=10.2 COVERAGE=yes
159 160
      addons:
        mariadb: 10.2
161
    - stage: Test
162
      php: 7.3
163 164 165
      env: DB=mariadb MARIADB_VERSION=10.3 COVERAGE=yes
      addons:
        mariadb: 10.3
166
    - stage: Test
167
      php: 7.3
168
      env: DB=mariadb.mysqli MARIADB_VERSION=10.0 COVERAGE=yes
169
      addons:
170
        mariadb: 10.0
171
    - stage: Test
172
      php: 7.3
173
      env: DB=mariadb.mysqli MARIADB_VERSION=10.1 COVERAGE=yes
174
      addons:
175
        mariadb: 10.1
176
    - stage: Test
177
      php: 7.3
178
      env: DB=mariadb.mysqli MARIADB_VERSION=10.2 COVERAGE=yes
179 180
      addons:
        mariadb: 10.2
Luís Cobucci's avatar
Luís Cobucci committed
181
    - stage: Test
182
      php: 7.3
183
      env: DB=mariadb.mysqli MARIADB_VERSION=10.3 COVERAGE=yes
184
      addons:
185
        mariadb: 10.3
Luís Cobucci's avatar
Luís Cobucci committed
186
    - stage: Test
187
      php: 7.3
188
      env: DB=pgsql POSTGRESQL_VERSION=9.2 COVERAGE=yes
189 190 191
      services:
        - postgresql
      addons:
192
        postgresql: "9.2"
Luís Cobucci's avatar
Luís Cobucci committed
193
    - stage: Test
194
      php: 7.3
195
      env: DB=pgsql POSTGRESQL_VERSION=9.3 COVERAGE=yes
196 197
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
198 199 200
      addons:
        postgresql: "9.3"
    - stage: Test
201
      php: 7.3
202
      env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes
203 204
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
205 206 207
      addons:
        postgresql: "9.4"
    - stage: Test
208
      php: 7.3
209
      env: DB=pgsql POSTGRESQL_VERSION=9.5 COVERAGE=yes
210 211
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
212 213 214
      addons:
        postgresql: "9.5"
    - stage: Test
215
      php: 7.3
216
      env: DB=pgsql POSTGRESQL_VERSION=9.6 COVERAGE=yes
217 218
      services:
        - postgresql
Luís Cobucci's avatar
Luís Cobucci committed
219 220
      addons:
        postgresql: "9.6"
221
    - stage: Test
222
      php: 7.3
223
      env: DB=pgsql POSTGRESQL_VERSION=10.0 COVERAGE=yes
224 225 226 227 228 229 230 231
      sudo: required
      services:
        - postgresql
      addons:
        postgresql: "9.6"
      before_script:
        - bash ./tests/travis/install-postgres-10.sh
    - stage: Test
232
      php: 7.3
233
      env: DB=pgsql POSTGRESQL_VERSION=11.0 COVERAGE=yes
234 235
      sudo: required
      services:
236
        - docker
237
      before_script:
238
        - bash ./tests/travis/install-postgres-11.sh
239
    - stage: Test
240
      php: 7.3
241
      env: DB=sqlsrv COVERAGE=yes
242 243
      sudo: required
      services:
244
        - docker
245
      before_script:
246
        - bash ./tests/travis/install-sqlsrv-dependencies.sh
247 248
        - bash ./tests/travis/install-mssql-sqlsrv.sh
        - bash ./tests/travis/install-mssql.sh
249
    - stage: Test
250
      php: 7.3
251
      env: DB=pdo_sqlsrv COVERAGE=yes
252 253 254 255
      sudo: required
      services:
        - docker
      before_script:
256
        - bash ./tests/travis/install-sqlsrv-dependencies.sh
257 258
        - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh
        - bash ./tests/travis/install-mssql.sh
259
    - stage: Test
260
      php: 7.3
261
      env: DB=ibm_db2 COVERAGE=yes
262 263 264 265
      sudo: required
      services:
        - docker
      before_script:
266 267
        - bash ./tests/travis/install-db2.sh
        - bash ./tests/travis/install-db2-ibm_db2.sh
268
    - stage: Test
269
      php: 7.3
270 271 272
      env: DB=sqlite DEPENDENCIES=low
      install:
        - travis_retry composer update --prefer-dist --prefer-lowest
273
    - stage: Test
274
      php: 7.4snapshot
275
      env: DB=mysql.docker MYSQL_VERSION=8.0
276
      sudo: required
277 278
      services:
        - docker
279
      before_script:
280
        - bash ./tests/travis/install-mysql-8.0.sh
281
    - stage: Test
282
      php: 7.4snapshot
283
      env: DB=mysqli.docker MYSQL_VERSION=8.0
284
      sudo: required
285 286
      services:
        - docker
287
      before_script:
288
        - bash ./tests/travis/install-mysql-8.0.sh
289
    - stage: Test
290
      php: 7.4snapshot
291 292 293 294
      env: DB=mariadb MARIADB_VERSION=10.3
      addons:
        mariadb: 10.3
    - stage: Test
295
      php: 7.4snapshot
296 297 298 299
      env: DB=mariadb.mysqli MARIADB_VERSION=10.3
      addons:
        mariadb: 10.3
    - stage: Test
300
      php: 7.4snapshot
301
      env: DB=pgsql POSTGRESQL_VERSION=11.0
302 303
      sudo: required
      services:
304
        - docker
305
      before_script:
306
        - bash ./tests/travis/install-postgres-11.sh
307
    - stage: Test
308
      php: 7.4snapshot
309 310
      env: DB=sqlite
    - stage: Test
311
      php: 7.4snapshot
312
      env: DB=sqlsrv
313 314 315 316
      sudo: required
      services:
        - docker
      before_script:
317
        - bash ./tests/travis/install-sqlsrv-dependencies.sh
318 319
        - bash ./tests/travis/install-mssql-sqlsrv.sh
        - bash ./tests/travis/install-mssql.sh
320
    - stage: Test
321
      php: 7.4snapshot
322
      env: DB=pdo_sqlsrv
323 324 325 326
      sudo: required
      services:
        - docker
      before_script:
327
        - bash ./tests/travis/install-sqlsrv-dependencies.sh
328 329
        - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh
        - bash ./tests/travis/install-mssql.sh
330 331 332 333 334 335 336 337

    - 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
338 339 340

  allow_failures:
    - env: DEPENDENCIES=dev