3 Commits

Author SHA1 Message Date
9e58fd0c6d Merge pull request 'ci: clean up after image builds and demo wipes' (#237) from chore/ci-self-cleanup into main
All checks were successful
sync-project-tree / sync (push) Successful in 22s
Build container images / build (push) Successful in 2m49s
Build container images / deploy (push) Successful in 51s
SonarQube / analysis (push) Successful in 10m16s
Demo wipe / wipe (push) Successful in 6m35s
Reviewed-on: #237
Reviewed-by: Colby Whitlock <whitlocktech@gmail.com>
2026-11-04 12:16:02 +00:00
ebb8f870bb ci: clean up after image builds and demo wipes
All checks were successful
PR Checks / bot-tests (pull_request) Successful in 53s
PR Checks / client-build (pull_request) Successful in 2m19s
PR Checks / server-tests (pull_request) Successful in 6m19s
The build job runs docker on the runner host's daemon, so every run left
four tagged images behind for good. Remove this run's tags once they are
pushed and cap BuildKit's cache at 5 GB, always, never failing the job.

The demo wipe pulls every two hours; drop the dangling image each pull
replaces. The uom-deploy-runner deploy job is deliberately untouched.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-11-02 11:20:47 -06:00
27f7fe5d85 Merge pull request 'fix(events): core.lease keeps a module's retry: false on read/apply refusals' (#236) from fix/lease-retry-206 into main
Some checks failed
sync-project-tree / sync (push) Successful in 13s
Build container images / build (push) Successful in 1m47s
Build container images / deploy (push) Successful in 40s
SonarQube / analysis (push) Failing after 3m20s
Demo wipe / wipe (push) Successful in 7m23s
Reviewed-on: #236
Reviewed-by: Colby Whitlock <whitlocktech@gmail.com>
2026-11-02 11:21:52 +00:00
2 changed files with 24 additions and 0 deletions

View File

@@ -93,6 +93,22 @@ jobs:
docker push "${BOT_IMAGE}:latest" docker push "${BOT_IMAGE}:latest"
docker push "${BOT_IMAGE}:${TAG}" docker push "${BOT_IMAGE}:${TAG}"
- name: Remove this run's images and cap the build cache
# The build runs on the HOST daemon, so whatever it leaves stays on the
# runner host for good: every run used to leave four tagged images, and
# each newer `latest` turned the previous one into a permanent `sha-` image
# until the host ran out of disk. Both tags are in the registry by now, so
# the local copies are dead weight. BuildKit keeps its layer cache apart
# from the images, so the next build stays fast; the cache is pruned to a
# cap instead of growing forever (`--reserved-space` is the same flag's
# name on newer Docker). Runs even after a failure, and never fails the job.
if: always()
run: |
docker image rm "${APP_IMAGE}:latest" "${APP_IMAGE}:${TAG}" \
"${BOT_IMAGE}:latest" "${BOT_IMAGE}:${TAG}" 2>/dev/null || true
docker builder prune -f --keep-storage 5GB \
|| docker builder prune -f --reserved-space 5GB || true
- name: Log out (clear cached credentials from the runner) - name: Log out (clear cached credentials from the runner)
if: always() if: always()
run: docker logout "${REGISTRY}" || true run: docker logout "${REGISTRY}" || true

View File

@@ -110,6 +110,14 @@ jobs:
docker run --rm --network rg-demo_default -v "$DEMO_DIR:/demo" \ docker run --rm --network rg-demo_default -v "$DEMO_DIR:/demo" \
-e SITE_URL=http://app:3000 "$NODE_IMAGE" node /demo/rig.mjs smoke -e SITE_URL=http://app:3000 "$NODE_IMAGE" node /demo/rig.mjs smoke
- name: Remove the images this wipe replaced
# Each pull that finds a newer `latest` leaves the old image untagged on
# the demo host, every two hours. Untagged images are never used again, so
# drop them. Dangling images only: nothing tagged and nothing a container
# is using is touched.
if: always()
run: docker image prune -f || true
- name: Report the rig restore - name: Report the rig restore
if: steps.rig.outcome == 'failure' if: steps.rig.outcome == 'failure'
run: | run: |