45
45
dependency : symfony
46
46
47
47
tests :
48
- name : ${{ matrix.job-name }}
48
+ name : PHP ${{ matrix.php-version }} & Sf ${{ matrix.symfony-version }} - ${{ matrix.job-name }}
49
49
needs : [fetch-supported-versions]
50
50
runs-on : ubuntu-latest
51
51
permissions :
@@ -61,28 +61,28 @@ jobs:
61
61
php-version : ' ${{ needs.fetch-supported-versions.outputs.php-max }}'
62
62
symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-max }}'
63
63
# Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
64
- pkg-extra-constraints : behat/gherkin:~4.12.0
65
- - job-name : Up to date versions - Special case - Symfony 5.4
64
+ pkg-extra-constraints : --with ' behat/gherkin:~4.12.0'
65
+ - job-name : Up to date versions - Sf 5.4 case
66
66
php-version : ' ${{ needs.fetch-supported-versions.outputs.php-max }}'
67
67
symfony-version : ' 5.4'
68
68
# Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
69
69
# Fix - symfony/yaml - Avoid issue with Sf YAML 6.4+ and Framework bundle
70
- pkg-extra-constraints : behat/gherkin:~4.12.0 ${{ ( needs.fetch-supported-versions.outputs.symfony-max == '6.4' ) && 'symfony/yaml:~6.4.0' || '' }}
70
+ pkg-extra-constraints : --with ' behat/gherkin:~4.12.0' ${{ ( needs.fetch-supported-versions.outputs.symfony-max == '6.4' ) && '--with " symfony/yaml:~6.4.0" ' || '' }}
71
71
- job-name : Bare minimum # => Lowest versions allowed by composer config
72
72
php-version : ' ${{ needs.fetch-supported-versions.outputs.php-min }}'
73
73
symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-min }}'
74
- - job-name : Bare minimum - Special case - Symfony 5.4
74
+ - job-name : Bare minimum - Sf 5.4 case
75
75
php-version : ' ${{ needs.fetch-supported-versions.outputs.php-min }}'
76
76
symfony-version : ' 5.4'
77
- - job-name : Late migration - PHP # => Highest symfony version with lowest php version allowed by composer config
77
+ - job-name : Late PHP migration # => Highest symfony version with lowest php version allowed by composer config
78
78
# Fix - Sf 6.4 require php 8.1 minimum !
79
79
php-version : ${{ ( needs.fetch-supported-versions.outputs.symfony-max == '6.4' && needs.fetch-supported-versions.outputs.php-min == '8.0' ) && '8.1' || needs.fetch-supported-versions.outputs.php-min }}
80
80
symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-max }}'
81
- - job-name : Late migration - Symfony # => Lowest symfony version with highest php version allowed by composer config
81
+ - job-name : Late Symfony migration # => Lowest symfony version with highest php version allowed by composer config
82
82
php-version : ' ${{ needs.fetch-supported-versions.outputs.php-max }}'
83
83
symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-min }}'
84
84
# Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
85
- pkg-extra-constraints : behat/gherkin:~4.12.0
85
+ pkg-extra-constraints : --with ' behat/gherkin:~4.12.0'
86
86
steps :
87
87
- name : Check out code
88
88
uses : actions/checkout@v5
@@ -119,13 +119,16 @@ jobs:
119
119
120
120
- name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ matrix.symfony-version }}
121
121
run : |
122
+ # Rely on "composer update --with" rather than "composer require" !
123
+ # => it ensures the tested version is actually allowed by constraints
124
+ # ("composer require" would override those constraints, which may not produce something actually installable by end-user)
122
125
SF_CONSTRAINT="~${{ matrix.symfony-version }}.0"
123
- composer require -W \
124
- symfony/config:${SF_CONSTRAINT} \
125
- symfony/dependency-injection:${SF_CONSTRAINT} \
126
- symfony/event-dispatcher:${SF_CONSTRAINT} \
127
- symfony/http-foundation:${SF_CONSTRAINT} \
128
- symfony/http-kernel:${SF_CONSTRAINT} \
126
+ composer update --no-install --with-all-dependencies --minimal-changes \
127
+ --with " symfony/config:${SF_CONSTRAINT}" \
128
+ --with " symfony/dependency-injection:${SF_CONSTRAINT}" \
129
+ --with " symfony/event-dispatcher:${SF_CONSTRAINT}" \
130
+ --with " symfony/http-foundation:${SF_CONSTRAINT}" \
131
+ --with " symfony/http-kernel:${SF_CONSTRAINT}" \
129
132
${{ matrix.pkg-extra-constraints }} \
130
133
&& make build
131
134
@@ -205,13 +208,16 @@ jobs:
205
208
206
209
- name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ env.SYMFONY_VERSION }}
207
210
run : |
211
+ # Rely on "composer update --with" rather than "composer require" !
212
+ # => it ensures the tested version is actually allowed by constraints
213
+ # ("composer require" would override those constraints, which may not produce something actually installable by end-user)
208
214
SF_CONSTRAINT="~${{ env.SYMFONY_VERSION }}.0"
209
- composer require -W \
210
- symfony/config:${SF_CONSTRAINT} \
211
- symfony/dependency-injection:${SF_CONSTRAINT} \
212
- symfony/event-dispatcher:${SF_CONSTRAINT} \
213
- symfony/http-foundation:${SF_CONSTRAINT} \
214
- symfony/http-kernel:${SF_CONSTRAINT} \
215
+ composer update --no-install --with-all-dependencies --minimal-changes \
216
+ --with " symfony/config:${SF_CONSTRAINT}" \
217
+ --with " symfony/dependency-injection:${SF_CONSTRAINT}" \
218
+ --with " symfony/event-dispatcher:${SF_CONSTRAINT}" \
219
+ --with " symfony/http-foundation:${SF_CONSTRAINT}" \
220
+ --with " symfony/http-kernel:${SF_CONSTRAINT}" \
215
221
&& make build
216
222
217
223
- name : ComposerRequireChecker
@@ -222,7 +228,7 @@ jobs:
222
228
uses : actions/dependency-review-action@v4
223
229
224
230
nightly-tests :
225
- name : Nightly - ${{ matrix.job-name }}
231
+ name : Nightly - PHP ${{ matrix.php-version }} & Sf ${{ matrix.symfony-version }} - ${{ matrix.job-name }}
226
232
needs : [ fetch-supported-versions, tests ]
227
233
if : ${{ github.event_name == 'push' || ( github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'with-nightly-tests') ) }}
228
234
runs-on : ubuntu-latest
@@ -235,23 +241,23 @@ jobs:
235
241
fail-fast : false
236
242
matrix :
237
243
include :
238
- - job-name : PHP - With highest supported Symfony versions
244
+ - job-name : PHP with highest supported Symfony versions
239
245
php-version : ${{ needs.fetch-supported-versions.outputs.php-next }}
240
246
symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-max }}
241
247
# Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
242
248
pkg-extra-constraints : behat/gherkin:~4.12.0
243
- - job-name : PHP - With lowest supported Symfony versions
249
+ - job-name : PHP with lowest supported Symfony versions
244
250
php-version : ${{ needs.fetch-supported-versions.outputs.php-next }}
245
251
symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-min }}
246
252
# Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
247
253
pkg-extra-constraints : behat/gherkin:~4.12.0
248
- - job-name : Symfony - With highest supported PHP version
254
+ - job-name : Symfony with highest supported PHP version
249
255
php-version : ${{ needs.fetch-supported-versions.outputs.php-max }}
250
256
symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-next }}
251
257
# Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
252
258
# Fix - symfony/framework-bundle - Framework bundle <7.0 require php 8.1 minimum !
253
259
pkg-extra-constraints : behat/gherkin:~4.12.0 ${{ ( needs.fetch-supported-versions.outputs.symfony-next == '7.0' && needs.fetch-supported-versions.outputs.php-max == '8.4' ) && 'symfony/framework-bundle:~7.0.0@dev' || '' }}
254
- - job-name : Symfony - With lowest supported PHP version
260
+ - job-name : Symfony with lowest supported PHP version
255
261
# Fix - Sf 7.0 require php 8.1 minimum, most of deps require 8.2 !
256
262
php-version : ${{ ( needs.fetch-supported-versions.outputs.symfony-next == '7.0' && needs.fetch-supported-versions.outputs.php-min == '8.0' ) && '8.2' || needs.fetch-supported-versions.outputs.php-min }}
257
263
symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-next }}
@@ -288,9 +294,11 @@ jobs:
288
294
289
295
- name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ matrix.symfony-version }}
290
296
run : |
297
+ # For nightly builds, rely on "composer require" rather than "composer update --with" !
298
+ # => tested version is likely outside of constraints, in that case "composer update --with" would fail
291
299
SF_CONSTRAINT="~${{ matrix.symfony-version }}.0@dev"
292
300
composer config minimum-stability dev \
293
- && composer require -W \
301
+ && composer require --no-install --with-all-dependencies --minimal-changes \
294
302
symfony/config:${SF_CONSTRAINT} \
295
303
symfony/dependency-injection:${SF_CONSTRAINT} \
296
304
symfony/event-dispatcher:${SF_CONSTRAINT} \
0 commit comments