Commit 8443fdb
committed
workflows: chunk the external-download matrix across 4 parallel invocations
The `download` job in infrastructure-download-external.yml was hitting
GitHub Actions' 256-entry `strategy.matrix` cap (259 configurations
observed). Rather than trimming the matrix (which would drop legitimate
arch × release combos users need) or duplicating a 500-line job block,
lean on the fact that infrastructure-download-external.yml is *already*
a reusable workflow — call it N times from the parent
(infrastructure-repository-update.yml) with a `CHUNK_INDEX` /
`CHUNK_COUNT` pair, and have the child filter its own matrix to its
assigned slice.
Child (infrastructure-download-external.yml):
- Add CHUNK_INDEX (0..CHUNK_COUNT-1) and CHUNK_COUNT (default 1) inputs.
- In the `start` job, after building MATRIX_JSON, slice the include[]
list so each invocation keeps only entries where
`index % CHUNK_COUNT == CHUNK_INDEX`. Modular slicing (not contiguous
ranges) avoids clustering slow package types into one chunk.
- Suffix the `assets-for-download` artifact name with CHUNK_INDEX so
parallel uploads don't race against each other.
Parent (infrastructure-repository-update.yml):
- Turn the single `external:` reusable-workflow call into a
`strategy.matrix` over `chunk_index: [0, 1, 2, 3]`, passing
CHUNK_COUNT: 4 to the child.
Effect: 4 parallel invocations, each with its own 256-matrix cap and
its own `max-parallel=180`. Headroom 1024 total matrix entries,
effective concurrency 720. Scale past that by bumping `chunk_index`
list and CHUNK_COUNT in lockstep — no block duplication, no file
extraction, no matrix trimming.
Legacy/un-chunked callers that omit the chunk inputs get CHUNK_COUNT=1
and receive the entire matrix as before.1 parent 360356c commit 8443fdb
2 files changed
Lines changed: 56 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
45 | 57 | | |
46 | 58 | | |
47 | 59 | | |
| |||
209 | 221 | | |
210 | 222 | | |
211 | 223 | | |
212 | | - | |
| 224 | + | |
213 | 225 | | |
214 | 226 | | |
215 | 227 | | |
| |||
360 | 372 | | |
361 | 373 | | |
362 | 374 | | |
363 | | - | |
364 | | - | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
365 | 386 | | |
366 | | - | |
367 | | - | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
368 | 405 | | |
369 | 406 | | |
370 | 407 | | |
| |||
897 | 934 | | |
898 | 935 | | |
899 | 936 | | |
900 | | - | |
| 937 | + | |
901 | 938 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
46 | 56 | | |
47 | 57 | | |
48 | 58 | | |
| |||
51 | 61 | | |
52 | 62 | | |
53 | 63 | | |
| 64 | + | |
| 65 | + | |
54 | 66 | | |
55 | 67 | | |
56 | 68 | | |
| |||
0 commit comments