ci: clean up after image builds and demo wipes #237

Merged
whitlocktech merged 1 commits from chore/ci-self-cleanup into main 2026-11-04 06:16:09 -06:00
Member

What & why

The CI runners are filling up. Runner 65 (ubuntu-latest) is out of disk right now: every recent
task it took died at checkout with No space left on device (e.g. this repo's run 459 build and
run 464 analysis, 2026-11-02).

The build job runs docker on the runner host's daemon (mounted socket), so whatever it leaves is
permanent. Each run left four tagged images (website-app and website-bot, :latest and
:sha-<7>), and each newer :latest turned the last one into another permanent :sha- image.

  • build-images.yml → build: new if: always() step after the pushes. It removes this run's
    four tags, which are in the registry already, and caps BuildKit's cache at 5 GB
    (--keep-storage, falling back to its newer name --reserved-space). It never fails the job.
    BuildKit keeps the layer cache apart from the images, so builds stay cached.
  • demo-wipe.yml: new final if: always() step, docker image prune -f. The two-hourly
    pull leaves the replaced image dangling on the demo host. Dangling images only; nothing tagged
    or in use is touched.
  • build-images.yml → deploy (uom-deploy-runner) is deliberately untouched: that host is on
    another network and is not to be changed or cleaned (org lead).

Companion PRs: runicgateway.com (same build fix + deploy prune), link / installer / Rust-Link
(rust-cache), docs (DEMO_MODE §7.3 step 7).

How it was tested

  • All changed workflow files parse (PyYAML) with the expected jobs and steps.
  • Not run live yet: the build job runs on the next merge to main, the wipe on its next 2-hour
    slot. The first real proof is that run's new step log, plus docker images on the build host
    showing no website-app/website-bot tags left behind.

Checklist

  • I have read CONTRIBUTING.md.
  • The change builds and existing tests/checks pass locally.
  • I have added or updated tests/docs where it makes sense.
  • My commits are reasonably scoped with clear messages.

AI-assisted contributions (required)

  • No AI tools were used to produce this contribution.
  • AI tools were used. Tool(s): Claude Code (Claude Opus 5.5). I have reviewed and understand
    every change, and take responsibility for it. AI-authored commits are
    marked with a Co-Authored-By / Assisted-By trailer.

License

  • I agree that my contribution is licensed under this project's license
    (GNU GPL v3.0 or later), and I have the right to contribute it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What & why The CI runners are filling up. Runner 65 (`ubuntu-latest`) is out of disk right now: every recent task it took died at checkout with `No space left on device` (e.g. this repo's run 459 `build` and run 464 `analysis`, 2026-11-02). The build job runs docker on the runner **host's** daemon (mounted socket), so whatever it leaves is permanent. Each run left four tagged images (`website-app` and `website-bot`, `:latest` and `:sha-<7>`), and each newer `:latest` turned the last one into another permanent `:sha-` image. - **`build-images.yml` → `build`:** new `if: always()` step after the pushes. It removes this run's four tags, which are in the registry already, and caps BuildKit's cache at 5 GB (`--keep-storage`, falling back to its newer name `--reserved-space`). It never fails the job. BuildKit keeps the layer cache apart from the images, so builds stay cached. - **`demo-wipe.yml`:** new final `if: always()` step, `docker image prune -f`. The two-hourly pull leaves the replaced image dangling on the demo host. Dangling images only; nothing tagged or in use is touched. - **`build-images.yml` → `deploy` (`uom-deploy-runner`) is deliberately untouched**: that host is on another network and is not to be changed or cleaned (org lead). Companion PRs: runicgateway.com (same build fix + deploy prune), link / installer / Rust-Link (rust-cache), docs (DEMO_MODE §7.3 step 7). ## How it was tested - All changed workflow files parse (PyYAML) with the expected jobs and steps. - Not run live yet: the build job runs on the next merge to `main`, the wipe on its next 2-hour slot. The first real proof is that run's new step log, plus `docker images` on the build host showing no `website-app`/`website-bot` tags left behind. ## Checklist - [x] I have read [CONTRIBUTING.md](CONTRIBUTING.md). - [x] The change builds and existing tests/checks pass locally. - [x] I have added or updated tests/docs where it makes sense. - [x] My commits are reasonably scoped with clear messages. ## AI-assisted contributions (required) - [ ] No AI tools were used to produce this contribution. - [x] AI tools were used. Tool(s): `Claude Code (Claude Opus 5.5)`. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with a `Co-Authored-By` / `Assisted-By` trailer. ## License - [x] I agree that my contribution is licensed under this project's license (**GNU GPL v3.0 or later**), and I have the right to contribute it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-11-02 11:21:55 -06:00
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
ebb8f870bb
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
whitlocktech approved these changes 2026-11-04 06:09:46 -06:00
whitlocktech scheduled this pull request to auto merge when all checks succeed 2026-11-04 06:09:51 -06:00
whitlocktech merged commit 9e58fd0c6d into main 2026-11-04 06:16:09 -06:00
whitlocktech deleted branch chore/ci-self-cleanup 2026-11-04 06:16:10 -06:00
Sign in to join this conversation.
No description provided.