CI: use Gitea 1.27 job summaries for richer step reports (mutation, frontend, unit, e2e, verify-stack) #136
Closed
opened 2026-07-24 11:41:40 +00:00 by not
·
0 comments
No Branch/Tag Specified
main
ci/175-deploy-on-merge
feat/177-public-tls-edge
ci/168-helm-chart-ci-gate
docs/169-mkdocs-nav
feat/25-helm-kubernetes-caddy
fix/161-e2e-bounded-and-diagnosable
feat/162-werkbak-live-refresh
feat/132-medewerker-mfa
fix/156-tempo-ingester-healthcheck
feat/153-projection-sourced-from-objecten
feat/152-objecten-publishes-to-nrc
feat/149-acl-writes-registerrecord
feat/141-registerrecord-objecttype
perf/verify-stack-uwsgi-oz-nrc
fix/144-verify-stack-uwsgi
feat/140-objecten-up
feat/139-objecttypen-up
feat/131-default-fill-crud
chore/136-ci-job-summaries
fix/134-verify-stack-scheduling
feat/130-beheer-catalogi
feat/124-metrics-dashboards
ci/127-parallel-jobs
feat/123-distributed-traces
feat/111-self-service-resume
feat/113-acl-zaaktype-by-identificatie
fix/110-compose-local-flow
fix/115-e2e-single-worker
docs/111-backlog-s26
feat/106-close-zaak-on-timeout
feat/103-diploma-upload-documenten
feat/102-document-wait-timeout
feat/14-dmn-diploma-eligibility
feat/15-beoordeling-escalation
fix/portal-nginx-resolver
fix/local-eventsubscriber-acl
feat/12-withdrawal-portal
fix/91-local-compose-parity
feat/12-withdrawal-bff
feat/12-withdrawal-workflow
feat/12-withdrawal
feat/13-behandel-portal
feat/13-behandel-decide
feat/13-behandel-bff-auth-werkbak
feat/13-workflow-user-tasks
feat/13-behandel-decision-model
chore/release-2026.07.0
feat/78-reference-correlation
feat/75-approval-flow
feat/10-openbaar-portal
chore/73-ci-speedups
feat/68-e2e
feat/67-self-service-form
feat/66-api-client
feat/65-nx-workspace
feat/8-bff
feat/6-domain-service
feat/7-event-subscriber-projection
feat/56-nrc-notification-wiring
test/46-acl-openzaak-integration
feat/47-acl-mutation-baseline
ci/30-gitea-actions-ci
feat/5-acl-open-zaak
feat/4-flowable
feat/3-keycloak
feat/2-opennotificaties
feat/2-catalogus-seed
feat/10-openzaak-compose
feat/32-docs-scaffold
feat/31-contributor-workflow
feat/30-gitea-actions-ci
feat/29-bff-docker-compose
chore/remove-bootstrap-scripts
feat/28-bff-health
docs/split-s00
v2026.07.0
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
eho (Edwin van den Houdt)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: eho/register-referentie#136
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Context
Gitea 1.27 + act_runner 2.0.0 now support the standard
$GITHUB_STEP_SUMMARYfile: markdown a step appends there renders on the run page, next to the logs, with no artifact download. The runner only uploads it when the server advertises support and silently skips otherwise, so it is safe to adopt. Guard every write with[ -n "$GITHUB_STEP_SUMMARY" ]so local/older-runner runs don't error on an unset var.All items below are reporting-only — no gating/exit-code changes — so they're low risk and TDD-neutral.
Depends on #134/#135 (verify-stack must dispatch again before we bolt summary steps onto it).
Scope (quick wins)
1. Mutation scores
Add
Markdowntoreportersin eachservices/*/stryker-config.json(Stryker.NET 4.15 supports it → writesreports/mutation-report.md). In themutationjob, anif: always()step concatenates each service'sStrykerOutput/*/reports/mutation-report.mdinto the summary. Bonus: sincemake mutationstops at the first ratchet break, the summary also shows exactly where it stopped.2. Frontend tests labelled per frontend
The
frontendjob runsmake frontend(nxrun-manylint+test+build across all projects). The summary should break results down per project —self-service,openbaar,behandel,beheer, and the libs (auth,ui,api-client) — so it's obvious which frontend failed. Likely approach: a per-project vitest reporter (JSON) or parsing nx's per-project output into a table (project → pass/fail/count).3. Unit test reports per service
The
unitjob runsmake unit(dotnet teston the solution). Emit a per-service table (acl, domain, event-subscriber, bff, projection-api, acceptance) with passed/failed/skipped + duration. Likely approach:dotnet test --logger trx+ parse each project's TRX, or a summary logger, appended to the summary.4. verify-stack e2e results
Playwright per-spec pass/fail in the summary. The e2e runs inside a container (
infra/run-e2e-check.shviadocker cp), so a results file (Playwright JSON/markdown reporter) must be copied back out to the runner and appended. Would have made today'scatalogus.specfailure a one-glance read instead of a 3,400-line log dive.5. verify-stack check table
A table of each live-stack check — observability, acl, nrc, projection, domain, bff, tracing, metrics, e2e — with pass/fail, so a red
verify-stackshows which check failed at a glance. Approach: capture each step's outcome (stepids + a finalif: always()summary step), or have eachmake verify-*emit a status line.Definition of Done
$GITHUB_STEP_SUMMARY(guarded), renders on the run page.docs/runbooks/gitea-actions-gotchas.md/ci.mdnote the$GITHUB_STEP_SUMMARYpattern + version requirement (Gitea >=1.27, runner >=2.0).Notes
Can be split per item if it grows past 1-2 days (CLAUDE.md §13); items 1 and 3/2 are the cheapest, 4/5 need more plumbing. Do not start until signalled.