|
11 | 11 | matrix: |
12 | 12 | mode: ["server", "library"] |
13 | 13 | environment: ["ci"] |
14 | | - e2e_group: [1, 2, 3] |
| 14 | + # Config-aligned shards (@cfg_*). Packed small groups keep job count reasonable |
| 15 | + # while avoiding mixed-config restarts inside large suites. |
| 16 | + shard: |
| 17 | + - name: default |
| 18 | + tags: "not @skip and @cfg_default" |
| 19 | + - name: authorized |
| 20 | + tags: "not @skip and @cfg_authorized" |
| 21 | + - name: mcp |
| 22 | + tags: "not @skip and (@cfg_mcp or @cfg_mcp_invalid or @cfg_mcp_api_auth)" |
| 23 | + - name: rbac |
| 24 | + tags: "not @skip and @cfg_rbac" |
| 25 | + - name: skills |
| 26 | + tags: "not @skip and (@cfg_skills or @cfg_skills_directory)" |
| 27 | + - name: other |
| 28 | + tags: "not @skip and (@cfg_rh_identity or @cfg_negative or @cfg_byok_pdf or @cfg_degraded or @cfg_unified)" |
| 29 | + # Server-only; listed in shard (not matrix.include) so it expands with |
| 30 | + # mode=server before any library jobs. include would append after library. |
| 31 | + - name: tls |
| 32 | + tags: "not @skip and @cfg_tls" |
| 33 | + exclude: |
| 34 | + - mode: library |
| 35 | + shard: |
| 36 | + name: tls |
| 37 | + tags: "not @skip and @cfg_tls" |
15 | 38 |
|
16 | | - name: "E2E: ${{ matrix.mode }} mode / ${{ matrix.environment }} / group ${{ matrix.e2e_group }}" |
| 39 | + name: "E2E: ${{ matrix.mode }} / ${{ matrix.environment }} / ${{ matrix.shard.name }}" |
17 | 40 |
|
18 | 41 | env: |
19 | 42 | OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} |
|
43 | 66 | persist-credentials: ${{ github.event_name != 'pull_request_target' }} |
44 | 67 |
|
45 | 68 | # Fetch submodules (required for lightspeed-providers) |
46 | | - submodules: ‘recursive’ |
| 69 | + submodules: "recursive" |
47 | 70 |
|
48 | 71 | - name: Verify actual git checkout result |
49 | 72 | run: | |
@@ -112,7 +135,7 @@ jobs: |
112 | 135 | echo "=== Configuration Summary ===" |
113 | 136 | echo "Deployment mode: ${{ matrix.mode }}" |
114 | 137 | echo "Environment: ${{ matrix.environment }}" |
115 | | - echo "E2E shard (Makefile test-e2e-tagged): @e2e_group_${{ matrix.e2e_group }} (with not @skip)" |
| 138 | + echo "E2E shard (Makefile test-e2e-tagged): ${{ matrix.shard.tags }}" |
116 | 139 | echo "Source config: tests/e2e/configs/run-${{ matrix.environment }}.yaml" |
117 | 140 | echo "" |
118 | 141 | echo "=== Configuration Preview ===" |
@@ -239,8 +262,8 @@ jobs: |
239 | 262 | TERM: xterm-256color |
240 | 263 | FORCE_COLOR: 1 |
241 | 264 | E2E_DEPLOYMENT_MODE: ${{ matrix.mode }} |
242 | | - # Matches Makefile test-e2e-tagged / E2E_BEHAVE_TAG_EXPR (one @e2e_group_* per job). |
243 | | - E2E_BEHAVE_TAG_EXPR: "not @skip and @e2e_group_${{ matrix.e2e_group }}" |
| 265 | + # Matches Makefile test-e2e-tagged / E2E_BEHAVE_TAG_EXPR (one @cfg_* pack per job). |
| 266 | + E2E_BEHAVE_TAG_EXPR: "${{ matrix.shard.tags }}" |
244 | 267 | run: | |
245 | 268 | echo "Installing test dependencies..." |
246 | 269 | pip install uv |
|
0 commit comments