ci: verify-stack check-results table in the run summary (refs #136)
This commit is contained in:
@@ -193,26 +193,73 @@ jobs:
|
|||||||
- uses: https://github.com/actions/checkout@v4
|
- uses: https://github.com/actions/checkout@v4
|
||||||
# Bring the full stack up + wait for health — this also is the DoD "compose up
|
# Bring the full stack up + wait for health — this also is the DoD "compose up
|
||||||
# reaches green health" smoke (it replaces the old compose-smoke job).
|
# reaches green health" smoke (it replaces the old compose-smoke job).
|
||||||
|
# Each check carries an `id` so the summary step below can report its per-check outcome (#136).
|
||||||
|
# A failed check skips the rest (no step `if:`), so the table shows exactly where it stopped.
|
||||||
- name: Bring up the full stack & wait for health
|
- name: Bring up the full stack & wait for health
|
||||||
|
id: up
|
||||||
run: make verify-up
|
run: make verify-up
|
||||||
- name: Observability backplane (Grafana + Tempo + Prometheus datasources)
|
- name: Observability backplane (Grafana + Tempo + Prometheus datasources)
|
||||||
|
id: obs
|
||||||
run: OBS_TIMEOUT=180 make verify-observability
|
run: OBS_TIMEOUT=180 make verify-observability
|
||||||
- name: ACL ↔ OpenZaak integration tests
|
- name: ACL ↔ OpenZaak integration tests
|
||||||
|
id: acl
|
||||||
run: make verify-acl
|
run: make verify-acl
|
||||||
- name: OpenZaak → NRC notification delivery
|
- name: OpenZaak → NRC notification delivery
|
||||||
|
id: nrc
|
||||||
run: make verify-nrc
|
run: make verify-nrc
|
||||||
- name: OpenZaak → NRC → Event Subscriber → projection-api
|
- name: OpenZaak → NRC → Event Subscriber → projection-api
|
||||||
|
id: projection
|
||||||
run: make verify-projection
|
run: make verify-projection
|
||||||
- name: Domain → Flowable → ACL → OpenZaak
|
- name: Domain → Flowable → ACL → OpenZaak
|
||||||
|
id: domain
|
||||||
run: make verify-domain
|
run: make verify-domain
|
||||||
- name: BFF → Keycloak + domain + projection
|
- name: BFF → Keycloak + domain + projection
|
||||||
|
id: bff
|
||||||
run: make verify-bff
|
run: make verify-bff
|
||||||
- name: Distributed traces reach Tempo (one connected trace across services)
|
- name: Distributed traces reach Tempo (one connected trace across services)
|
||||||
|
id: tracing
|
||||||
run: TRACING_TIMEOUT=120 make verify-tracing
|
run: TRACING_TIMEOUT=120 make verify-tracing
|
||||||
- name: Golden-signal metrics scraped by Prometheus (/metrics on every service)
|
- name: Golden-signal metrics scraped by Prometheus (/metrics on every service)
|
||||||
|
id: metrics
|
||||||
run: METRICS_TIMEOUT=120 make verify-metrics
|
run: METRICS_TIMEOUT=120 make verify-metrics
|
||||||
- name: Self-service e2e (Playwright, login → submit → success)
|
- name: Self-service e2e (Playwright, login → submit → success)
|
||||||
|
id: e2e
|
||||||
run: make verify-e2e
|
run: make verify-e2e
|
||||||
|
# Job summary (#136): a pass/fail table of every live-stack check, so a red verify-stack shows
|
||||||
|
# which check failed at a glance. `if: always()` (step-level — safe on runner 2.0.0, unlike the
|
||||||
|
# job-level status-function `if` of #134) so it renders even after a check fails.
|
||||||
|
- name: verify-stack check summary
|
||||||
|
if: always()
|
||||||
|
env:
|
||||||
|
UP: ${{ steps.up.outcome }}
|
||||||
|
OBS: ${{ steps.obs.outcome }}
|
||||||
|
ACL: ${{ steps.acl.outcome }}
|
||||||
|
NRC: ${{ steps.nrc.outcome }}
|
||||||
|
PROJECTION: ${{ steps.projection.outcome }}
|
||||||
|
DOMAIN: ${{ steps.domain.outcome }}
|
||||||
|
BFF: ${{ steps.bff.outcome }}
|
||||||
|
TRACING: ${{ steps.tracing.outcome }}
|
||||||
|
METRICS: ${{ steps.metrics.outcome }}
|
||||||
|
E2E: ${{ steps.e2e.outcome }}
|
||||||
|
run: |
|
||||||
|
[ -n "${GITHUB_STEP_SUMMARY:-}" ] || exit 0
|
||||||
|
icon() { case "$1" in success) echo "✅";; failure) echo "❌";; skipped) echo "⏭️";; cancelled) echo "🚫";; *) echo "❔ ${1:-—}";; esac; }
|
||||||
|
{
|
||||||
|
echo "## 🔌 verify-stack checks"
|
||||||
|
echo
|
||||||
|
echo "| Check | Result |"
|
||||||
|
echo "| ----- | :----: |"
|
||||||
|
echo "| Bring up + health | $(icon "$UP") |"
|
||||||
|
echo "| Observability backplane | $(icon "$OBS") |"
|
||||||
|
echo "| ACL ↔ OpenZaak | $(icon "$ACL") |"
|
||||||
|
echo "| OpenZaak → NRC | $(icon "$NRC") |"
|
||||||
|
echo "| NRC → Event Subscriber → projection | $(icon "$PROJECTION") |"
|
||||||
|
echo "| Domain → Flowable → ACL → OpenZaak | $(icon "$DOMAIN") |"
|
||||||
|
echo "| BFF → Keycloak + domain + projection | $(icon "$BFF") |"
|
||||||
|
echo "| Distributed traces (Tempo) | $(icon "$TRACING") |"
|
||||||
|
echo "| Golden-signal metrics (Prometheus) | $(icon "$METRICS") |"
|
||||||
|
echo "| Self-service e2e (Playwright) | $(icon "$E2E") |"
|
||||||
|
} >> "$GITHUB_STEP_SUMMARY"
|
||||||
# Log dump must precede teardown (which removes the containers).
|
# Log dump must precede teardown (which removes the containers).
|
||||||
- name: Dump container logs on failure
|
- name: Dump container logs on failure
|
||||||
if: failure()
|
if: failure()
|
||||||
|
|||||||
Reference in New Issue
Block a user