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,28 +61,28 @@ 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)
6969 # 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" ' || '' }}
7171 - job-name : Bare minimum # => Lowest versions allowed by composer config
7272 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-min }}'
7373 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
7575 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-min }}'
7676 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
7878 # Fix - Sf 6.4 require php 8.1 minimum !
7979 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 }}
8080 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
8282 php-version : ' ${{ needs.fetch-supported-versions.outputs.php-max }}'
8383 symfony-version : ' ${{ needs.fetch-supported-versions.outputs.symfony-min }}'
8484 # 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'
8686 steps :
8787 - name : Check out code
8888 uses : actions/checkout@v5
@@ -119,13 +119,16 @@ jobs:
119119
120120 - name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ matrix.symfony-version }}
121121 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)
122125 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}" \
129132 ${{ matrix.pkg-extra-constraints }} \
130133 && make build
131134
@@ -205,13 +208,16 @@ jobs:
205208
206209 - name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ env.SYMFONY_VERSION }}
207210 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)
208214 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}" \
215221 && make build
216222
217223 - name : ComposerRequireChecker
@@ -222,7 +228,7 @@ jobs:
222228 uses : actions/dependency-review-action@v4
223229
224230 nightly-tests :
225- name : Nightly - ${{ matrix.job-name }}
231+ name : Nightly - PHP ${{ matrix.php-version }} & Sf ${{ matrix.symfony-version }} - ${{ matrix.job-name }}
226232 needs : [ fetch-supported-versions, tests ]
227233 if : ${{ github.event_name == 'push' || ( github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'with-nightly-tests') ) }}
228234 runs-on : ubuntu-latest
@@ -235,23 +241,23 @@ jobs:
235241 fail-fast : false
236242 matrix :
237243 include :
238- - job-name : PHP - With highest supported Symfony versions
244+ - job-name : PHP with highest supported Symfony versions
239245 php-version : ${{ needs.fetch-supported-versions.outputs.php-next }}
240246 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-max }}
241247 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
242248 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
244250 php-version : ${{ needs.fetch-supported-versions.outputs.php-next }}
245251 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-min }}
246252 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
247253 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
249255 php-version : ${{ needs.fetch-supported-versions.outputs.php-max }}
250256 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-next }}
251257 # Fix - behat/gherkin => Avoid issue with behat <-> gherkin packages (See https://github.com/Behat/Gherkin/issues/317)
252258 # Fix - symfony/framework-bundle - Framework bundle <7.0 require php 8.1 minimum !
253259 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
255261 # Fix - Sf 7.0 require php 8.1 minimum, most of deps require 8.2 !
256262 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 }}
257263 symfony-version : ${{ needs.fetch-supported-versions.outputs.symfony-next }}
@@ -288,9 +294,11 @@ jobs:
288294
289295 - name : Build with PHP ${{ steps.setup-php.outputs.php-version }} & Symfony ${{ matrix.symfony-version }}
290296 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
291299 SF_CONSTRAINT="~${{ matrix.symfony-version }}.0@dev"
292300 composer config minimum-stability dev \
293- && composer require -W \
301+ && composer require --no-install --with-all-dependencies --minimal-changes \
294302 symfony/config:${SF_CONSTRAINT} \
295303 symfony/dependency-injection:${SF_CONSTRAINT} \
296304 symfony/event-dispatcher:${SF_CONSTRAINT} \
0 commit comments