Skip to content

Commit 998b7c6

Browse files
committed
Add platform bridges to unit tests workflow
- Add platform-bridges and platform-bridges-include outputs to matrix job - Discover platform bridges from src/platform/src/Bridge/ - Add platform-bridge job with PHP 8.2/8.5, lowest deps, Symfony 7.4/8.0 variants
1 parent eeefb60 commit 998b7c6

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

.github/workflows/unit-tests.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ jobs:
2626
packages-include: ${{ steps.set-matrix.outputs.packages-include }}
2727
bridges: ${{ steps.set-matrix.outputs.bridges }}
2828
bridges-include: ${{ steps.set-matrix.outputs.bridges-include }}
29+
platform-bridges: ${{ steps.set-matrix.outputs.platform-bridges }}
30+
platform-bridges-include: ${{ steps.set-matrix.outputs.platform-bridges-include }}
2931
steps:
3032
- name: Checkout
3133
uses: actions/checkout@v6
@@ -86,12 +88,33 @@ jobs:
8688
')
8789
echo "bridges-include=$BRIDGES_INCLUDE" >> $GITHUB_OUTPUT
8890
91+
# Platform bridges
92+
PLATFORM_BRIDGES=$(ls -1 src/platform/src/Bridge/ | sort \
93+
| jq -R -s -c 'split("\n") | map(select(length > 0)) | map({bridge: .})')
94+
echo "platform-bridges=$PLATFORM_BRIDGES" >> $GITHUB_OUTPUT
95+
96+
# Generate platform bridge includes (lowest, Symfony 7.4, Symfony 8.0)
97+
PLATFORM_BRIDGES_INCLUDE=$(echo "$PLATFORM_BRIDGES" | jq -c '
98+
. as $bridges |
99+
# lowest deps with PHP 8.2
100+
($bridges | map(. + {"php-version": "8.2", "dependency-version": "lowest"})) +
101+
# Symfony 7.4 LTS with PHP 8.2
102+
($bridges | map(. + {"php-version": "8.2", "symfony-version": "7.4.*"})) +
103+
# Symfony 8.0 with PHP 8.5
104+
($bridges | map(. + {"php-version": "8.5", "symfony-version": "8.0.*"}))
105+
| map({bridge: {bridge: .bridge}} + (. | del(.bridge)))
106+
')
107+
echo "platform-bridges-include=$PLATFORM_BRIDGES_INCLUDE" >> $GITHUB_OUTPUT
108+
89109
# Pretty print for info
90110
echo "### Packages"
91111
echo "$PACKAGES" | jq .
92112
echo ""
93113
echo "### Bridges"
94114
echo "$BRIDGES" | jq .
115+
echo ""
116+
echo "### Platform Bridges"
117+
echo "$PLATFORM_BRIDGES" | jq .
95118
96119
package:
97120
name: ${{ matrix.package.type }} / ${{ matrix.package.name }} / PHP ${{ matrix.php-version }}${{ matrix.dependency-version == 'lowest' && ' / lowest' || '' }}${{ matrix.symfony-version && format(' / Symfony {0}', matrix.symfony-version) || '' }}
@@ -174,3 +197,44 @@ jobs:
174197

175198
- name: Run PHPUnit
176199
run: cd src/${{ matrix.bridge.component }}/src/Bridge/${{ matrix.bridge.bridge }} && vendor/bin/phpunit
200+
201+
platform-bridge:
202+
name: Platform / ${{ matrix.bridge.bridge }} / PHP ${{ matrix.php-version }}${{ matrix.dependency-version == 'lowest' && ' / lowest' || '' }}${{ matrix.symfony-version && format(' / Symfony {0}', matrix.symfony-version) || '' }}
203+
needs: matrix
204+
runs-on: ubuntu-latest
205+
strategy:
206+
fail-fast: false
207+
matrix:
208+
bridge: ${{ fromJson(needs.matrix.outputs.platform-bridges) }}
209+
php-version: ['8.2', '8.5']
210+
dependency-version: ['']
211+
symfony-version: ['']
212+
include: ${{ fromJson(needs.matrix.outputs.platform-bridges-include) }}
213+
214+
env:
215+
SYMFONY_REQUIRE: ${{ matrix.symfony-version || '>=7.4' }}
216+
217+
steps:
218+
- name: Checkout
219+
uses: actions/checkout@v6
220+
221+
- name: Configure environment
222+
run: |
223+
echo COLUMNS=120 >> $GITHUB_ENV
224+
[ 'lowest' = '${{ matrix.dependency-version }}' ] && echo SYMFONY_DEPRECATIONS_HELPER=weak >> $GITHUB_ENV || true
225+
226+
- name: Setup PHP
227+
uses: shivammathur/setup-php@v2
228+
with:
229+
php-version: ${{ matrix.php-version }}
230+
tools: flex
231+
extensions: ${{ env.REQUIRED_PHP_EXTENSIONS }}
232+
233+
- name: Install dependencies
234+
uses: ramsey/composer-install@v3
235+
with:
236+
working-directory: src/platform/src/Bridge/${{ matrix.bridge.bridge }}
237+
dependency-versions: ${{ matrix.dependency-version || 'highest' }}
238+
239+
- name: Run PHPUnit
240+
run: cd src/platform/src/Bridge/${{ matrix.bridge.bridge }} && vendor/bin/phpunit

0 commit comments

Comments
 (0)