@@ -30,32 +30,60 @@ jobs:
30
30
- highest
31
31
- lowest
32
32
33
+ driver :
34
+ - " none"
35
+ - " xdebug"
36
+ - " pcov"
37
+
33
38
include :
34
39
- php-version : " 8.0"
35
40
dependencies : " force_latest"
36
41
37
42
steps :
38
43
- uses : actions/checkout@v2
39
44
40
- - name : Init Docker
41
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml up -d
45
+ - name : " Setup PHP"
46
+ uses : " shivammathur/setup-php@v2"
47
+ with :
48
+ php-version : ${{ matrix.php-version }}
49
+ coverage : ${{ matrix.driver }}
50
+ tools : cs2pr, composer:v2
51
+ env :
52
+ COMPOSER_TOKEN : ${{ secrets.GITHUB_TOKEN }}
42
53
43
54
- name : Verify PHP version used
44
55
run : |
45
- docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm php -v && php -m;
46
- docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm_xdebug php -v && php -m;
47
- docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm_pcov php -v && php -m;
56
+ php -v && php -m;
57
+
58
+ - name : Setup problem matchers for PHP
59
+ run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
60
+
61
+ - name : Setup problem matchers for PHPUnit
62
+ run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
48
63
49
64
- name : Validate composer.json
50
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer validate
65
+ run : composer validate --strict
66
+
67
+ - name : Get composer cache directory
68
+ id : composercache
69
+ run : echo "::set-output name=dir::$(composer config cache-files-dir)"
70
+
71
+ - name : Set up build cache
72
+ uses : " actions/cache@v2"
73
+ with :
74
+ path : |
75
+ ${{ steps.composercache.outputs.dir }}
76
+ "build/php-code-coverage-cache"
77
+ key : " php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-${{ hashFiles('composer.json') }}"
78
+ restore-keys : " php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}"
51
79
52
80
- name : Force Symfony version
53
81
if : matrix.symfony-version != ''
54
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer require --no-update "symfony/symfony:${{ matrix.symfony-version }}"
82
+ run : composer require --no-update "symfony/symfony:${{ matrix.symfony-version }}"
55
83
56
84
- name : Force php-code-coverage version
57
85
if : matrix.php-code-coverage-version != ''
58
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer require --no-update "phpunit/php-code-coverage:${{ matrix.php-code-coverage-version }}"
86
+ run : composer require --no-update "phpunit/php-code-coverage:${{ matrix.php-code-coverage-version }}"
59
87
60
88
- name : Composer cache
61
89
uses : " actions/cache@v2"
@@ -66,59 +94,42 @@ jobs:
66
94
67
95
- name : Remove PHP-CS-Fixer if not called
68
96
if : matrix.php-version != '7.4' || matrix.symfony-version != '^5.0' || matrix.dependencies != 'highest'
69
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer remove --dev --no-update "friendsofphp/php-cs-fixer";
97
+ run : composer remove --dev --no-update "friendsofphp/php-cs-fixer";
70
98
71
99
- name : Install dependencies (low)
72
100
if : matrix.dependencies == 'lowest'
73
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer update --prefer-lowest --no-interaction --prefer-dist
101
+ run : composer update --prefer-lowest --no-interaction --prefer-dist
74
102
75
103
- name : Install dependencies (high)
76
104
if : matrix.dependencies == 'highest'
77
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer update --no-interaction --prefer-dist
105
+ run : composer update --no-interaction --prefer-dist
78
106
79
107
- name : Install dependencies (force latest)
80
108
if : matrix.dependencies == 'force_latest'
81
109
run : |
82
- docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer config minimum-stability dev;
83
- docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm composer update --no-interaction --prefer-dist --ignore-platform-reqs;
110
+ composer config minimum-stability dev;
111
+ composer update --no-interaction --prefer-dist --ignore-platform-reqs;
84
112
85
113
- name : Check code style
86
114
if : matrix.php-version == '7.4' && matrix.symfony-version == '^5.0' && matrix.dependencies == 'highest'
87
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm vendor/bin/php-cs-fixer fix --verbose --dry-run --diff --diff-format=udiff --allow-risky=yes
115
+ run : vendor/bin/php-cs-fixer fix --verbose --dry-run --diff --diff-format=udiff --allow-risky=yes
88
116
89
- - name : PHPUnit (no coverage driver)
90
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm php vendor/phpunit/phpunit/phpunit;
91
-
92
- - name : PHPUnit (Xdebug)
117
+ - name : PHPUnit
93
118
run : |
94
- docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm_xdebug php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --coverage-clover=coverage-xdebug.xml --path-coverage;
95
- if [ "${{ matrix.php-version }}" = "7.4" ]; then
96
- wget https://scrutinizer-ci.com/ocular.phar;
97
- php ocular.phar code-coverage:upload --format=php-clover coverage-xdebug.xml;
98
- fi;
99
-
100
- - name : PHPUnit (PCOV)
101
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm_pcov php vendor/phpunit/phpunit/phpunit --coverage-clover=coverage-pcov.xml;
102
- if [ "${{ matrix.php-version }}" = "7.4" ]; then
103
- wget https://scrutinizer-ci.com/ocular.phar;
104
- php ocular.phar code-coverage:upload --format=php-clover coverage-pcov.xml;
119
+ if [ "${{ matrix.driver }}" == "xdebug" ]; then
120
+ php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --coverage-clover=coverage.xml --path-coverage;
121
+ else
122
+ php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --coverage-clover=coverage.xml;
105
123
fi;
106
-
107
- - name : Behat (no coverage driver)
108
- run : docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm php vendor/behat/behat/bin/behat --strict;
109
-
110
- - name : Behat (Xdebug)
111
- run : |
112
- docker-compose -f tests/docker/php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm_xdebug php -dmemory_limit=-1 vendor/behat/behat/bin/behat --strict;
113
- if [ "${{ matrix.php-version }}" = "7.4" ]; then
124
+ if [ "${{ matrix.php-version }}" = "7.4" ] && [ "${{ matrix.driver }}" != "none" ]; then
114
125
wget https://scrutinizer-ci.com/ocular.phar;
115
- php ocular.phar code-coverage:upload --format=php-clover build/ coverage-behat/clover .xml;
126
+ php ocular.phar code-coverage:upload --format=php-clover coverage.xml;
116
127
fi;
117
128
118
- - name : Behat (PCOV)
129
+ - name : Behat
119
130
run : |
120
- docker-compose -f tests/docker/ php${{ matrix.php-version }}/docker-compose.yml exec -T php_fpm_pcov php vendor/behat/behat/bin/behat --strict;
121
- if [ "${{ matrix.php-version }}" = "7.4" ]; then
131
+ php -dmemory_limit=-1 vendor/behat/behat/bin/behat --strict;
132
+ if [ "${{ matrix.php-version }}" = "7.4" ] && [ "${{ matrix.driver }}" != "none" ] ; then
122
133
wget https://scrutinizer-ci.com/ocular.phar;
123
134
php ocular.phar code-coverage:upload --format=php-clover build/coverage-behat/clover.xml;
124
135
fi;
0 commit comments