From a56937cee2452619e7b0eb7a98c908dbb3fe2d59 Mon Sep 17 00:00:00 2001 From: Kamil Krzywda Date: Wed, 23 Sep 2026 18:05:38 +0000 Subject: [PATCH] v0.67.0: prune runner dind leftovers after e2e --- .gitea/workflows/ci.yml | 10 ++++++++++ CHANGELOG.md | 3 +++ package.json | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index e66aa15..122393f 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -247,3 +247,13 @@ jobs: run: | docker compose -f docker-compose.ci.yml -p flight-ci down --remove-orphans -v || true docker network remove flight-ci-e2e 2>/dev/null || true + + # The shared runner dind still accumulates between runs what the steps above can't reach: + # dangling images/layers from the per-run flight-ops-ci rebuilds, BuildKit cache, and job + # containers leaked by interrupted runs. Prune them here (after stack + network cleanup). + # Deliberately NO --volumes: the daemon is shared with production and named volumes may hold + # other workflows' persistent data — this project's own flight-ci_flight-db volume is already + # dropped by the steps above. Non-fatal so a prune failure can never mask or break the run. + - name: Prune runner dind leftovers + if: always() + run: docker system prune -af || echo "::warning::dind prune failed — see logs" diff --git a/CHANGELOG.md b/CHANGELOG.md index b1faa1e..6e14a90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## v0.67.0 — 2026-09-23 18:03 +- **Prune runner dind leftovers after e2e.** The CI runner's full-dind daemon is shared with production and other workflows, so between runs it accumulates what the existing cleanup steps can't reach: dangling images/layers from the per-run `flight-ops-ci` rebuilds, BuildKit cache (persists by design), and job containers leaked by interrupted runs. A new non-fatal "Prune runner dind leftovers" step (`if: always()`, placed after the existing "Cleanup e2e stack + network") runs `docker system prune -af || echo "::warning::dind prune failed — see logs"` so a prune failure can never mask or break the run's real result. Deliberately NO `--volumes`: named volumes on the shared daemon may hold other workflows' persistent data — this project's own `flight-ci_flight-db` volume is already dropped by the existing cleanup steps. No app/TS changes; CI validates the workflow itself. + ## v0.66.0 — 2026-09-23 17:06 - **E2E results in the Gitea job summary (#141).** The run page's "Job summaries" panel showed vitest results (vitest's built-in `github-actions` reporter auto-appends `$GITHUB_STEP_SUMMARY` when `GITHUB_ACTIONS=true`) but nothing about the Playwright suite, so a failed e2e run required digging into raw logs to see which specs broke. The CI E2E step now also runs Playwright's built-in `json` reporter (`--reporter=list,json`, output pinned to git-ignored `test-results/e2e.json` via `PLAYWRIGHT_JSON_OUTPUT_FILE` — no new dependencies, no config/TS changes), and a new non-fatal "E2E job summary" step (`if: always()`) parses that report with an inline node script and appends spec-level passed/failed/skipped counts plus the file + title of every failed spec to `$GITHUB_STEP_SUMMARY` — mirroring exactly how vitest gets there. The append is guarded (`|| true`, missing/malformed report = silent no-op) so it can never fail or mask the e2e step's real exit code; test behavior, timeouts, workers and retries are untouched. diff --git a/package.json b/package.json index 4bcfb7a..4920338 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flight-ops", - "version": "0.66.0", + "version": "0.67.0", "private": true, "scripts": { "dev": "next dev -p 3000",