Context
csharp-ci.yaml@v2 and scala-ci.yaml@v2 now support an OS × arch build-matrix input (first consumer: daml-codegen-csharp-internal#314, running 6 csharp shards and 5 jvm shards). Per-shard results are only visible in the PR checks panel; the workflows already post sticky coverage tables via marocchino/sticky-pull-request-comment.
Proposal
Add an aggregator job to both reusable workflows:
needs: build-and-test, if: always() (run on shard failure too — that's when the table is most useful).
- Query per-shard outcomes via
gh api repos/$REPO/actions/runs/$GITHUB_RUN_ID/jobs (needs.<job>.result only exposes the overall matrix result, not per-shard).
- Render a
shard | result | duration markdown table and upsert it with marocchino/sticky-pull-request-comment using a distinct header: key (e.g. build-matrix) so it doesn't clobber the coverage comments.
- No-op gracefully when the caller passes no
build-matrix (single-shard default) or when the event is not a PR.
Acceptance
- PR runs in a consuming repo show one auto-updating comment with all shards and their results.
- Coverage sticky comments unaffected.
- No comment posted on non-PR triggers.
Context
csharp-ci.yaml@v2andscala-ci.yaml@v2now support an OS × archbuild-matrixinput (first consumer: daml-codegen-csharp-internal#314, running 6 csharp shards and 5 jvm shards). Per-shard results are only visible in the PR checks panel; the workflows already post sticky coverage tables viamarocchino/sticky-pull-request-comment.Proposal
Add an aggregator job to both reusable workflows:
needs: build-and-test,if: always()(run on shard failure too — that's when the table is most useful).gh api repos/$REPO/actions/runs/$GITHUB_RUN_ID/jobs(needs.<job>.resultonly exposes the overall matrix result, not per-shard).shard | result | durationmarkdown table and upsert it withmarocchino/sticky-pull-request-commentusing a distinctheader:key (e.g.build-matrix) so it doesn't clobber the coverage comments.build-matrix(single-shard default) or when the event is not a PR.Acceptance