4545 dependency : symfony
4646
4747 tests :
48- name : ${{ matrix.job-name }}
48+ name : PHP ${{ matrix.php-version }} & Sf ${{ matrix.symfony-version }} - ${{ matrix.job-name }}
4949 needs : [fetch-supported-versions]
5050 runs-on : ubuntu-latest
5151 permissions :
@@ -61,27 +61,27 @@ jobs:
6161 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-max }}'
6262 symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-max }}'
6363 # 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
6666 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-max }}'
6767 symfony-version : ' 5.4'
6868 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
69- pkg-extra-constraints : behat/gherkin:~4.12.0
69+ pkg-extra-constraints : --with ' behat/gherkin:~4.12.0'
7070 - job-name : Bare minimum # => Lowest versions allowed by composer config
7171 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-min }}'
7272 symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-min }}'
73- - job-name : Bare minimum - Special case - Symfony 5.4
73+ - job-name : Bare minimum - Sf 5.4 case
7474 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-min }}'
7575 symfony-version : ' 5.4'
76- - job-name : Late migration - PHP # => Highest symfony version with lowest php version allowed by composer config
76+ - job-name : Late PHP migration # => Highest symfony version with lowest php version allowed by composer config
7777 # Fix - Sf 6.4 require php 8.1 minimum !
7878 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 }}
7979 symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-max }}'
80- - job-name : Late migration - Symfony # => Lowest symfony version with highest php version allowed by composer config
80+ - job-name : Late Symfony migration # => Lowest symfony version with highest php version allowed by composer config
8181 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-max }}'
8282 symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-min }}'
8383 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
84- pkg-extra-constraints : behat/gherkin:~4.12.0
84+ pkg-extra-constraints : --with ' behat/gherkin:~4.12.0'
8585 steps :
8686 - name : Check out code
8787 uses : actions/checkout@v5
@@ -118,12 +118,15 @@ jobs:
118118
119119 - name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ matrix.symfony-version }}
120120 run : |
121+ # Rely on "composer update --with" rather than "composer require" !
122+ # => it ensures the tested version is actually allowed by constraints
123+ # ("composer require" would override those constraints, which may not produce something actually installable by end-user)
121124 SF_CONSTRAINT="~${{ matrix.symfony-version }}.0"
122- composer require -W \
123- symfony/config:${SF_CONSTRAINT} \
124- symfony/dependency-injection:${SF_CONSTRAINT} \
125- symfony/http-foundation:${SF_CONSTRAINT} \
126- symfony/http-kernel:${SF_CONSTRAINT} \
125+ composer update --no-install --with-all-dependencies --minimal-changes \
126+ --with " symfony/config:${SF_CONSTRAINT}" \
127+ --with " symfony/dependency-injection:${SF_CONSTRAINT}" \
128+ --with " symfony/http-foundation:${SF_CONSTRAINT}" \
129+ --with " symfony/http-kernel:${SF_CONSTRAINT}" \
127130 ${{ matrix.pkg-extra-constraints }} \
128131 && make build
129132
@@ -203,12 +206,15 @@ jobs:
203206
204207 - name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ env.SYMFONY_VERSION }}
205208 run : |
209+ # Rely on "composer update --with" rather than "composer require" !
210+ # => it ensures the tested version is actually allowed by constraints
211+ # ("composer require" would override those constraints, which may not produce something actually installable by end-user)
206212 SF_CONSTRAINT="~${{ env.SYMFONY_VERSION }}.0"
207- composer require -W \
208- symfony/config:${SF_CONSTRAINT} \
209- symfony/dependency-injection:${SF_CONSTRAINT} \
210- symfony/http-foundation:${SF_CONSTRAINT} \
211- symfony/http-kernel:${SF_CONSTRAINT} \
213+ composer update --no-install --with-all-dependencies --minimal-changes \
214+ --with " symfony/config:${SF_CONSTRAINT}" \
215+ --with " symfony/dependency-injection:${SF_CONSTRAINT}" \
216+ --with " symfony/http-foundation:${SF_CONSTRAINT}" \
217+ --with " symfony/http-kernel:${SF_CONSTRAINT}" \
212218 && make build
213219
214220 - name : ComposerRequireChecker
@@ -219,7 +225,7 @@ jobs:
219225 uses : actions/dependency-review-action@v4
220226
221227 nightly-tests :
222- name : Nightly - ${{ matrix.job-name }}
228+ name : Nightly - PHP ${{ matrix.php-version }} & Sf ${{ matrix.symfony-version }} - ${{ matrix.job-name }}
223229 needs : [ fetch-supported-versions, tests ]
224230 if : ${{ github.event_name == 'push' || ( github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'with-nightly-tests') ) }}
225231 runs-on : ubuntu-latest
@@ -232,23 +238,23 @@ jobs:
232238 fail-fast : false
233239 matrix :
234240 include :
235- - job-name : PHP - With highest supported Symfony versions
241+ - job-name : PHP with highest supported Symfony versions
236242 php-version : ${{ needs.fetch-supported-versions.outputs.php-next }}
237243 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-max }}
238244 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
239245 pkg-extra-constraints : behat/gherkin:~4.12.0
240- - job-name : PHP - With lowest supported Symfony versions
246+ - job-name : PHP with lowest supported Symfony versions
241247 php-version : ${{ needs.fetch-supported-versions.outputs.php-next }}
242248 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-min }}
243249 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
244250 pkg-extra-constraints : behat/gherkin:~4.12.0
245- - job-name : Symfony - With highest supported PHP version
251+ - job-name : Symfony with highest supported PHP version
246252 php-version : ${{ needs.fetch-supported-versions.outputs.php-max }}
247253 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-next }}
248254 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
249255 # Fix - symfony/framework-bundle - Framework bundle <7.0 require php 8.1 minimum !
250256 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' || '' }}
251- - job-name : Symfony - With lowest supported PHP version
257+ - job-name : Symfony with lowest supported PHP version
252258 # Fix - Sf 7.0 require php 8.1 minimum, most of deps require 8.2 !
253259 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 }}
254260 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-next }}
@@ -285,9 +291,11 @@ jobs:
285291
286292 - name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ matrix.symfony-version }}
287293 run : |
294+ # For nightly builds, rely on "composer require" rather than "composer update --with" !
295+ # => tested version is likely outside of constraints, in that case "composer update --with" would fail
288296 SF_CONSTRAINT="~${{ matrix.symfony-version }}.0@dev"
289297 composer config minimum-stability dev \
290- && composer require -W \
298+ && composer require --no-install --with-all-dependencies --minimal-changes \
291299 symfony/config:${SF_CONSTRAINT} \
292300 symfony/dependency-injection:${SF_CONSTRAINT} \
293301 symfony/http-foundation:${SF_CONSTRAINT} \
0 commit comments