Skip to content

Commit ce76a54

Browse files
committed
[CI] Fix bridge test matrix include creating jobs without bridge info
The `include` directive in GitHub Actions matrix adds separate combinations rather than multiplying with existing matrix values. This caused jobs to be created with only php-version and dependency-version set, but no bridge object, resulting in "Unable to find working directory at 'src/src/Bridge/'" errors. Fix by generating full include arrays in build-matrix.yaml with the bridge info nested under a 'bridge' key. Each bridge now gets tested with: - PHP 8.2 lowest - PHP 8.2 highest - PHP 8.5 highest
1 parent 93a24fa commit ce76a54

File tree

2 files changed

+40
-18
lines changed

2 files changed

+40
-18
lines changed

.github/workflows/build-matrix.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,21 @@ on:
1515
store-bridges:
1616
description: 'List of store bridges'
1717
value: ${{ jobs.matrix.outputs.store-bridges }}
18+
store-bridges-include:
19+
description: 'Store bridges includes for test matrix'
20+
value: ${{ jobs.matrix.outputs.store-bridges-include }}
1821
tool-bridges:
1922
description: 'List of tool bridges'
2023
value: ${{ jobs.matrix.outputs.tool-bridges }}
24+
tool-bridges-include:
25+
description: 'Tool bridges includes for test matrix'
26+
value: ${{ jobs.matrix.outputs.tool-bridges-include }}
2127
platform-bridges:
2228
description: 'List of platform bridges'
2329
value: ${{ jobs.matrix.outputs.platform-bridges }}
30+
platform-bridges-include:
31+
description: 'Platform bridges includes for test matrix'
32+
value: ${{ jobs.matrix.outputs.platform-bridges-include }}
2433

2534
jobs:
2635
matrix:
@@ -31,8 +40,11 @@ jobs:
3140
packages-include: ${{ steps.set-matrix.outputs.packages-include }}
3241
bridges: ${{ steps.set-matrix.outputs.bridges }}
3342
store-bridges: ${{ steps.set-matrix.outputs.store-bridges }}
43+
store-bridges-include: ${{ steps.set-matrix.outputs.store-bridges-include }}
3444
tool-bridges: ${{ steps.set-matrix.outputs.tool-bridges }}
45+
tool-bridges-include: ${{ steps.set-matrix.outputs.tool-bridges-include }}
3546
platform-bridges: ${{ steps.set-matrix.outputs.platform-bridges }}
47+
platform-bridges-include: ${{ steps.set-matrix.outputs.platform-bridges-include }}
3648
steps:
3749
- name: Checkout
3850
uses: actions/checkout@v6
@@ -76,6 +88,31 @@ jobs:
7688
echo "tool-bridges=$(echo "$TOOL_BRIDGES" | jq -c 'map(del(.type))')" >> $GITHUB_OUTPUT
7789
echo "platform-bridges=$(echo "$PLATFORM_BRIDGES" | jq -c 'map({bridge: .bridge})')" >> $GITHUB_OUTPUT
7890
91+
# Bridge includes (8.2 lowest, 8.2 highest, 8.5 highest)
92+
STORE_BRIDGES_INCLUDE=$(echo "$STORE_BRIDGES" | jq -c '
93+
. as $bridges |
94+
($bridges | map({bridge: {component: .component, bridge: .bridge}, "php-version": "8.2", "dependency-version": "lowest"})) +
95+
($bridges | map({bridge: {component: .component, bridge: .bridge}, "php-version": "8.2", "dependency-version": "highest"})) +
96+
($bridges | map({bridge: {component: .component, bridge: .bridge}, "php-version": "8.5", "dependency-version": "highest"}))
97+
')
98+
echo "store-bridges-include=$STORE_BRIDGES_INCLUDE" >> $GITHUB_OUTPUT
99+
100+
TOOL_BRIDGES_INCLUDE=$(echo "$TOOL_BRIDGES" | jq -c '
101+
. as $bridges |
102+
($bridges | map({bridge: {component: .component, bridge: .bridge}, "php-version": "8.2", "dependency-version": "lowest"})) +
103+
($bridges | map({bridge: {component: .component, bridge: .bridge}, "php-version": "8.2", "dependency-version": "highest"})) +
104+
($bridges | map({bridge: {component: .component, bridge: .bridge}, "php-version": "8.5", "dependency-version": "highest"}))
105+
')
106+
echo "tool-bridges-include=$TOOL_BRIDGES_INCLUDE" >> $GITHUB_OUTPUT
107+
108+
PLATFORM_BRIDGES_INCLUDE=$(echo "$PLATFORM_BRIDGES" | jq -c '
109+
. as $bridges |
110+
($bridges | map({bridge: {bridge: .bridge}, "php-version": "8.2", "dependency-version": "lowest"})) +
111+
($bridges | map({bridge: {bridge: .bridge}, "php-version": "8.2", "dependency-version": "highest"})) +
112+
($bridges | map({bridge: {bridge: .bridge}, "php-version": "8.5", "dependency-version": "highest"}))
113+
')
114+
echo "platform-bridges-include=$PLATFORM_BRIDGES_INCLUDE" >> $GITHUB_OUTPUT
115+
79116
# Package includes (lowest, Symfony 7.4, Symfony 8.0)
80117
PACKAGES_INCLUDE=$(echo "$PACKAGES" | jq -c '
81118
. as $pkgs |

.github/workflows/tests.yaml

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,7 @@ jobs:
7676
strategy:
7777
fail-fast: false
7878
matrix:
79-
bridge: ${{ fromJson(needs.matrix.outputs.store-bridges) }}
80-
php-version: ['8.2', '8.5']
81-
dependency-version: ['highest']
82-
include:
83-
- php-version: '8.2'
84-
dependency-version: 'lowest'
79+
include: ${{ fromJson(needs.matrix.outputs.store-bridges-include) }}
8580

8681
steps:
8782
- name: Checkout
@@ -115,12 +110,7 @@ jobs:
115110
strategy:
116111
fail-fast: false
117112
matrix:
118-
bridge: ${{ fromJson(needs.matrix.outputs.tool-bridges) }}
119-
php-version: ['8.2', '8.5']
120-
dependency-version: ['highest']
121-
include:
122-
- php-version: '8.2'
123-
dependency-version: 'lowest'
113+
include: ${{ fromJson(needs.matrix.outputs.tool-bridges-include) }}
124114

125115
steps:
126116
- name: Checkout
@@ -154,12 +144,7 @@ jobs:
154144
strategy:
155145
fail-fast: false
156146
matrix:
157-
bridge: ${{ fromJson(needs.matrix.outputs.platform-bridges) }}
158-
php-version: ['8.2', '8.5']
159-
dependency-version: ['highest']
160-
include:
161-
- php-version: '8.2'
162-
dependency-version: 'lowest'
147+
include: ${{ fromJson(needs.matrix.outputs.platform-bridges-include) }}
163148

164149
steps:
165150
- name: Checkout

0 commit comments

Comments
 (0)