@@ -16,6 +16,9 @@ matrix:
1616 include :
1717 - php : ' 7.0'
1818 - php : ' 7.1'
19+ - php : ' 7.2'
20+ - php : ' 7.2'
21+ env : coverage=1
1922 - php : ' 7.2'
2023 env : lint=1
2124 - php : ' 7.2'
@@ -24,36 +27,84 @@ matrix:
2427 env : SYMFONY_DEPRECATIONS_HELPER=0
2528 - php : ' 7.2'
2629 services :
27- - postgresql
30+ - postgresql
2831 before_script :
29- - psql -c 'create database api_platform_test;' -U postgres
32+ - psql -c 'create database api_platform_test;' -U postgres
3033 env : APP_ENV=postgres
3134 - php : ' 7.2'
3235 services :
33- - mysql
36+ - mysql
3437 before_script :
35- - mysql -e 'CREATE DATABASE api_platform_test;'
38+ - mysql -e 'CREATE DATABASE api_platform_test;'
3639 env : APP_ENV=mysql
3740 allow_failures :
3841 env : SYMFONY_DEPRECATIONS_HELPER=0
3942
4043before_install :
4144 - phpenv config-rm xdebug.ini || echo "xdebug not available"
4245 - echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
43- - npm install -g swagger-cli
44- - if [[ $lint = 1 ]]; then wget https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.10.0/php-cs-fixer.phar; fi
45- - if [[ $lint = 1 ]]; then composer global require --dev 'phpstan/phpstan:^0.8'; fi
46+ - if [[ $coverage != 1 && $lint != 1 ]]; then
47+ npm install -g swagger-cli;
48+ fi
49+ - if [[ $coverage = 1 ]]; then
50+ mkdir -p build/logs build/cov;
51+ fi
52+ - if [[ $coverage = 1 ]]; then
53+ wget https://phar.phpunit.de/phpcov.phar;
54+ fi
55+ - if [[ $coverage = 1 ]]; then
56+ wget https://github.com/satooshi/php-coveralls/releases/download/v1.0.1/coveralls.phar;
57+ fi
58+ - if [[ $lint = 1 ]]; then
59+ wget https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.8.4/php-cs-fixer.phar;
60+ fi
61+ - if [[ $lint = 1 ]]; then
62+ composer global require --dev 'phpstan/phpstan:^0.8';
63+ fi
4664 - export PATH="$PATH:$HOME/.composer/vendor/bin"
4765
4866install :
49- - if [[ $deps != 'low' ]]; then composer update --prefer-dist --no-progress --no-suggest --ansi; fi
50- - if [[ $deps = 'low' ]]; then composer update --prefer-dist --no-progress --no-suggest --prefer-stable --prefer-lowest --ansi; fi
67+ - if [[ $coverage = 1 ]]; then
68+ composer require --dev --no-update 'phpunit/php-code-coverage:^5.2.2';
69+ fi
70+ - if [[ $deps = 'low' ]]; then
71+ composer update --prefer-dist --no-progress --no-suggest --prefer-stable --prefer-lowest --ansi;
72+ else
73+ composer update --prefer-dist --no-progress --no-suggest --ansi;
74+ fi
5175
5276script :
53- - vendor/bin/phpunit
54- - if [[ $APP_ENV != 'postgres' ]]; then vendor/bin/behat --suite=default --format=progress; fi
55- - if [[ $APP_ENV = 'postgres' ]]; then vendor/bin/behat --suite=postgres --format=progress; fi
56- - tests/Fixtures/app/console api:swagger:export > swagger.json && swagger-cli validate swagger.json && rm swagger.json
57- - tests/Fixtures/app/console api:swagger:export --yaml > swagger.yaml && swagger-cli validate --no-schema swagger.yaml && rm swagger.yaml
58- - if [[ $lint = 1 ]]; then php php-cs-fixer.phar fix --dry-run --diff --no-ansi; fi
59- - if [[ $lint = 1 ]]; then phpstan analyse -c phpstan.neon -l5 --ansi src tests; fi
77+ - if [[ $coverage = 1 ]]; then
78+ APP_ENV=test_phpunit phpdbg -qrr vendor/bin/phpunit --coverage-php build/cov/coverage-phpunit.cov;
79+ elif [[ $lint != 1 ]]; then
80+ APP_ENV=test_phpunit vendor/bin/phpunit;
81+ fi
82+ - if [[ $coverage = 1 ]]; then
83+ for f in $(find features -name '*.feature' -not -path 'features/main/exposed_state.feature'); do
84+ FEATURE=${f//\//_} phpdbg -qrr vendor/bin/behat --profile=coverage --suite=default --tags=~@postgress --format=progress $f || exit $?;
85+ done;
86+ elif [[ $APP_ENV = 'postgres' ]]; then
87+ vendor/bin/behat --suite=postgres --format=progress;
88+ elif [[ $lint != 1 ]]; then
89+ vendor/bin/behat --suite=default --format=progress;
90+ fi
91+ - if [[ $coverage = 1 ]]; then
92+ phpdbg -qrr phpcov.phar merge --clover build/logs/clover.xml build/cov;
93+ fi
94+ - if [[ $coverage != 1 && $lint != 1 ]]; then
95+ tests/Fixtures/app/console api:swagger:export > swagger.json && swagger-cli validate swagger.json && rm swagger.json;
96+ fi
97+ - if [[ $coverage != 1 && $lint != 1 ]]; then
98+ tests/Fixtures/app/console api:swagger:export --yaml > swagger.yaml && swagger-cli validate --no-schema swagger.yaml && rm swagger.yaml;
99+ fi
100+ - if [[ $lint = 1 ]]; then
101+ php php-cs-fixer.phar fix --dry-run --diff --no-ansi;
102+ fi
103+ - if [[ $lint = 1 ]]; then
104+ phpstan analyse -c phpstan.neon -l5 --ansi src tests;
105+ fi
106+
107+ after_success :
108+ - if [[ $coverage = 1 ]]; then
109+ travis_retry php coveralls.phar;
110+ fi
0 commit comments