@@ -2,19 +2,19 @@ name: build
22on : [push, pull_request]
33
44jobs :
5- full-build :
6- name : " Coding standards & coverage tests "
5+ quality-check :
6+ name : " Coding standards & test coverage "
77 runs-on : ${{ matrix.operating-system }}
88 strategy :
99 matrix :
1010 operating-system : ['ubuntu-latest']
1111 php-versions : ['7.4']
1212 env :
1313 extensions : pcov, dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
14- key : cache-v2
14+ key : cache-v3
1515 steps :
1616 - name : " Checkout"
17- uses : actions/checkout@v2
17+ uses : actions/checkout@v3
1818 - name : " Setup PHP extensions cache environment"
1919 id : cache-env
2020 uses : shivammathur/cache-extensions@v1
2323 extensions : ${{ env.extensions }}
2424 key : ${{ env.key }}
2525 - name : " Cache PHP extensions"
26- uses : actions/cache@v2
26+ uses : actions/cache@v3
2727 with :
2828 path : ${{ steps.cache-env.outputs.dir }}
2929 key : ${{ steps.cache-env.outputs.key }}
@@ -35,49 +35,88 @@ jobs:
3535 coverage : pcov
3636 extensions : ${{ env.extensions }}
3737 ini-values : assert.exception=1, zend.assertions=1
38- - name : " Validate composer.json"
39- run : composer validate
40- - name : " Setup composer cache"
41- uses : actions/cache@v2
38+ - name : " Install Composer dependencies"
39+ uses : ramsey/composer-install@v2
4240 with :
43- path : ~/.composer/cache
44- key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
45- restore-keys : ${{ runner.os }}-composer-
46- - name : " Install highest dependencies"
47- run : composer update --no-interaction --no-ansi --no-progress --no-suggest --prefer-stable
41+ dependency-versions : highest
42+ composer-options : --prefer-stable
43+ custom-cache-key : composer-${{ runner.os }}-php${{ matrix.php-versions }}-${{ hashFiles('**/composer.json') }}
4844 - name : " Coding standard Php-CS-Fixer checks"
4945 run : vendor/bin/php-cs-fixer --dry-run -v --config=cs-fixer.php.dist --path-mode=intersection fix src tests
5046 - name : " Coding standard CodeSniffer checks"
5147 run : |
52- vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml src
53- vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --ignore=*/code-samples/* tests
48+ vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --colors src
49+ vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --colors -- ignore=*/code-samples/* tests
5450 - name : " Package skeleton validation"
5551 run : vendor/bin/polymorphine-skeleton check
5652 - name : " Run PhpUnit tests with coverage"
5753 run : |
58- mkdir -p build /logs
59- vendor/bin/phpunit --coverage-clover build /logs/clover.xml
54+ mkdir -p .dev /logs
55+ vendor/bin/phpunit --coverage-clover .dev /logs/clover.xml
6056 - name : " Send coverage report to coveralls.io"
61- run : vendor/bin/php-coveralls -v
57+ run : |
58+ composer require php-coveralls/php-coveralls
59+ vendor/bin/php-coveralls -v -o .dev/logs/coveralls-upload.json -x .dev/logs/clover.xml
6260 env :
63- COVERALLS_RUN_LOCALLY : 1
6461 COVERALLS_REPO_TOKEN : ${{ secrets.COVERALLS_REPO_TOKEN }}
6562
66- php-os-builds :
67- name : " PHP 8 tests "
63+ platform-compatibility :
64+ name : " Operating systems "
6865 runs-on : ${{ matrix.operating-system }}
6966 strategy :
7067 matrix :
7168 operating-system : ['ubuntu-latest', 'windows-latest', 'macos-latest']
72- php-versions : ['8.0', '8.1 ']
69+ php-versions : ['8.4 ']
7370 env :
7471 extensions : dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
75- key : cache-v2
72+ key : cache-v3
7673 steps :
7774 - name : " Turn off git EOL conversion"
7875 run : git config --global core.autocrlf false
7976 - name : " Checkout"
80- uses : actions/checkout@v2
77+ uses : actions/checkout@v3
78+ - name : " Setup PHP extensions cache environment"
79+ id : cache-env
80+ uses : shivammathur/cache-extensions@v1
81+ with :
82+ php-version : ${{ matrix.php-versions }}
83+ extensions : ${{ env.extensions }}
84+ key : ${{ env.key }}
85+ - name : " Cache PHP extensions"
86+ uses : actions/cache@v3
87+ with :
88+ path : ${{ steps.cache-env.outputs.dir }}
89+ key : ${{ steps.cache-env.outputs.key }}
90+ restore-keys : ${{ steps.cache-env.outputs.key }}
91+ - name : " Install PHP with extensions"
92+ uses : shivammathur/setup-php@v2
93+ with :
94+ php-version : ${{ matrix.php-versions }}
95+ coverage : none
96+ extensions : ${{ env.extensions }}
97+ ini-values : assert.exception=1, zend.assertions=1
98+ - name : " Install Composer dependencies"
99+ uses : ramsey/composer-install@v2
100+ with :
101+ dependency-versions : highest
102+ composer-options : --prefer-stable
103+ custom-cache-key : composer-${{ runner.os }}-php${{ matrix.php-versions }}-${{ hashFiles('**/composer.json') }}
104+ - name : " Run PhpUnit tests (no coverage)"
105+ run : vendor/bin/phpunit --no-coverage
106+
107+ php-versions :
108+ name : " PHP versions"
109+ runs-on : ${{ matrix.operating-system }}
110+ strategy :
111+ matrix :
112+ operating-system : ['ubuntu-latest']
113+ php-versions : ['8.0', '8.1', '8.2', '8.3']
114+ env :
115+ extensions : dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
116+ key : cache-v3
117+ steps :
118+ - name : " Checkout"
119+ uses : actions/checkout@v3
81120 - name : " Setup PHP extensions cache environment"
82121 id : cache-env
83122 uses : shivammathur/cache-extensions@v1
86125 extensions : ${{ env.extensions }}
87126 key : ${{ env.key }}
88127 - name : " Cache PHP extensions"
89- uses : actions/cache@v2
128+ uses : actions/cache@v3
90129 with :
91130 path : ${{ steps.cache-env.outputs.dir }}
92131 key : ${{ steps.cache-env.outputs.key }}
@@ -98,13 +137,11 @@ jobs:
98137 coverage : none
99138 extensions : ${{ env.extensions }}
100139 ini-values : assert.exception=1, zend.assertions=1
101- - name : " Setup composer cache "
102- uses : actions/cache @v2
140+ - name : " Install Composer dependencies "
141+ uses : ramsey/composer-install @v2
103142 with :
104- path : ~/.composer/cache
105- key : ${{ runner.os }}-php${{ matrix.php-versions }}-composer-${{ hashFiles('**/composer.json') }}
106- restore-keys : ${{ runner.os }}-php${{ matrix.php-versions }}-composer-
107- - name : " Install highest dependencies"
108- run : composer update --no-interaction --no-ansi --no-progress --no-suggest --prefer-stable
143+ dependency-versions : highest
144+ composer-options : --prefer-stable
145+ custom-cache-key : composer-${{ runner.os }}-php${{ matrix.php-versions }}-${{ hashFiles('**/composer.json') }}
109146 - name : " Run PhpUnit tests (no coverage)"
110147 run : vendor/bin/phpunit --no-coverage
0 commit comments