@@ -68,42 +68,60 @@ jobs:
6868 #
6969 # The matrix is set up so as not to duplicate the builds which are run for code coverage.
7070 php : ['5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.5']
71- phpcs_version : ['lowest', 'stable ', '4.x-dev ']
71+ phpcs_version : ['lowest', '^3.13 ', '4.0.0', 'stable ']
7272 phpcsutils_version : ['stable']
7373
7474 exclude :
75+ # Note, since the release of PHPCS 4.0, 'stable' == latest 4.x.
7576 - php : ' 5.5'
76- phpcs_version : ' 4.x-dev'
77+ phpcs_version : ' 4.0.0'
78+ - php : ' 5.5'
79+ phpcs_version : ' stable'
7780 - php : ' 5.6'
78- phpcs_version : ' 4.x-dev'
81+ phpcs_version : ' 4.0.0'
82+ - php : ' 5.6'
83+ phpcs_version : ' stable'
7984 - php : ' 7.0'
80- phpcs_version : ' 4.x-dev'
85+ phpcs_version : ' 4.0.0'
86+ - php : ' 7.0'
87+ phpcs_version : ' stable'
8188 - php : ' 7.1'
82- phpcs_version : ' 4.x-dev'
89+ phpcs_version : ' 4.0.0'
90+ - php : ' 7.1'
91+ phpcs_version : ' stable'
92+ # Also exclude the 7.2/stable build as that's already run in code coverage, no need to duplicate.
93+ - php : ' 7.2'
94+ phpcs_version : ' stable'
8395
8496 include :
8597 # Add some builds with variations of the dependency versions.
8698 # Note: the PHPCS low/stable + Utils stable combi is already run via the above matrix.
8799 # And the PHPCS low + Utils low combi is run in the code coverage builds.
88100 # So these are the only combis missing.
89101 - php : ' 5.4'
102+ phpcs_version : ' ^3.13'
103+ phpcsutils_version : ' lowest'
104+ - php : ' 7.2'
90105 phpcs_version : ' stable'
91106 phpcsutils_version : ' lowest'
107+ - php : ' 8.4'
108+ phpcs_version : ' ^3.13'
109+ phpcsutils_version : ' lowest'
92110 - php : ' 8.4'
93111 phpcs_version : ' stable'
94112 phpcsutils_version : ' lowest'
95113
96114 # Test against dev versions of all dependencies with select PHP versions for early detection of issues.
97115 - php : ' 5.4'
98- phpcs_version : ' dev-master '
116+ phpcs_version : ' 3.x-dev '
99117 phpcsutils_version : ' dev-develop'
100118 - php : ' 7.2'
101- phpcs_version : ' dev-master'
102- phpcsutils_version : ' dev-develop'
103- - php : ' 7.4'
104119 phpcs_version : ' 4.x-dev'
105120 phpcsutils_version : ' dev-develop'
106- - php : ' 8.2'
121+ - php : ' 8.4'
122+ phpcs_version : ' 3.x-dev'
123+ phpcsutils_version : ' dev-develop'
124+ - php : ' 8.4'
107125 phpcs_version : ' 4.x-dev'
108126 phpcsutils_version : ' dev-develop'
109127
@@ -199,55 +217,38 @@ jobs:
199217
200218 strategy :
201219 matrix :
220+ # Note, since the release of PHPCS 4.0, 'stable' == latest 4.x.
202221 php : ['5.4', '8.4']
203- dependencies : ['lowest', 'stable', 'dev' ]
222+ dependencies : ['lowest', 'stable']
204223
205224 exclude :
206225 - php : ' 5.4'
207- dependencies : ' dev '
226+ dependencies : ' stable '
208227
209228 include :
210- # Replace the "low PHP" dev build for PHPCS 4.x.
229+ # Replace the "low PHP" stable build for PHPCS 4.x.
211230 - php : ' 7.2'
212- dependencies : ' dev '
231+ dependencies : ' stable '
213232
214233 name : " Coverage: PHP ${{ matrix.php }} - PHPCS ${{ matrix.dependencies }}"
215234
216235 steps :
217236 - name : Checkout code
218237 uses : actions/checkout@v5
219238
220- # On stable PHPCS versions, allow for PHP deprecation notices.
221- # Unit tests don't need to fail on those for stable releases where those issues won't get fixed anymore.
222- - name : Setup ini config
223- id : set_ini
224- # yamllint disable rule:line-length
225- run : |
226- if [ "${{ matrix.dependencies == 'dev' }}" == "false" ]; then
227- echo 'PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On, display_startup_errors=On' >> "$GITHUB_OUTPUT"
228- else
229- echo 'PHP_INI=error_reporting=-1, display_errors=On, display_startup_errors=On' >> "$GITHUB_OUTPUT"
230- fi
231- # yamllint enable rule:line-length
232-
233239 - name : Install PHP
234240 uses : shivammathur/setup-php@v2
235241 with :
236242 php-version : ${{ matrix.php }}
237- ini-values : ${{ steps.set_ini.outputs.PHP_INI }}
243+ # On stable PHPCS versions, allow for PHP deprecation notices.
244+ # Unit tests don't need to fail on those for stable releases where those issues won't get fixed anymore.
245+ ini-values : PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On
238246 coverage : xdebug
239247
240248 # Remove PHPCSDevCS as it would (for now) prevent the tests from being able to run against PHPCS 4.x.
241249 - name : ' Composer: remove PHPCSDevCS'
242250 run : composer remove --dev phpcsstandards/phpcsdevcs --no-update --no-interaction
243251
244- - name : " Composer: set PHPCS version for tests (dev)"
245- if : ${{ matrix.dependencies == 'dev' }}
246- run : >
247- composer require --no-scripts --no-interaction
248- squizlabs/php_codesniffer:"4.x-dev"
249- phpcsstandards/phpcsutils:"dev-develop"
250-
251252 - name : " Composer: use lock file when necessary"
252253 if : ${{ matrix.dependencies == 'lowest' }}
253254 run : composer config --unset lock
0 commit comments