CI builds + pushes multi-arch deploy images on git tags #431

Merged
toasterson merged 1 commit from claude/wi-019f903c-ci-builds-pushes-multi-arch-deploy-image into main 2026-07-29 17:39:04 +00:00
Owner

Anima work item 019f903c-c284-7020-8bbd-fc39e2237f66.

Today's deploy (PR #358) exposed two CI gaps:

  1. Solstice CI's build-and-push-images step does NOT push the deploy tags — docker manifest inspect anima-server:76cbce8 / :fa035a5 both returned "manifest unknown". So the deployable image is still built by hand on archibald (amd64) + armini (arm64) and stitched with scripts/stitch-manifest.sh. Slow and manual.
  2. There is no arm64 CI builder, so arm64 images can only be built on the armini box by hand (colima).

Goal: pushing a git TAG (e.g. a release/deploy tag, not every branch) triggers CI to build AND push the multi-arch deploy manifest to code.aopc.cloud/toasterson (anima-server, anima-runner, and the other in-cluster images) tagged with the git SHA (and/or the tag name), so a deploy is just a homelab tag bump + flux reconcile — no hand build.

Scope / open questions:

  • Tag-triggered workflow (which tag pattern) vs. building on every main push (cost tradeoff — full multi-arch build is expensive).
  • Multi-arch: needs an arm64 runner. BLOCKED on procuring an arm64 Solstice host (Till's note 2026-07-23) — until then, either keep armini in the loop as a CI-driven builder or emit amd64-only + a nodeSelector. Do NOT silently ship amd64-only: anima-server runs on wk03/arm64 with no nodeSelector, so an amd64-only tag is unschedulable there (verified today).
  • Tag scheme must match what homelab helmrelease.yaml pins (currently 7-char git SHA, e.g. fa035a5).
  • Registry auth already works from archibald/armini; CI needs the same push creds.

Relates to the manual-build reference in memory (Claude builds on archibald + armini by hand today).

Anima work item `019f903c-c284-7020-8bbd-fc39e2237f66`. Today's deploy (PR #358) exposed two CI gaps: 1. Solstice CI's `build-and-push-images` step does NOT push the deploy tags — `docker manifest inspect anima-server:76cbce8` / `:fa035a5` both returned "manifest unknown". So the deployable image is still built by hand on archibald (amd64) + armini (arm64) and stitched with scripts/stitch-manifest.sh. Slow and manual. 2. There is no arm64 CI builder, so arm64 images can only be built on the armini box by hand (colima). Goal: pushing a git TAG (e.g. a release/deploy tag, not every branch) triggers CI to build AND push the multi-arch deploy manifest to code.aopc.cloud/toasterson (anima-server, anima-runner, and the other in-cluster images) tagged with the git SHA (and/or the tag name), so a deploy is just a homelab tag bump + flux reconcile — no hand build. Scope / open questions: - Tag-triggered workflow (which tag pattern) vs. building on every main push (cost tradeoff — full multi-arch build is expensive). - Multi-arch: needs an arm64 runner. BLOCKED on procuring an arm64 Solstice host (Till's note 2026-07-23) — until then, either keep armini in the loop as a CI-driven builder or emit amd64-only + a nodeSelector. Do NOT silently ship amd64-only: anima-server runs on wk03/arm64 with no nodeSelector, so an amd64-only tag is unschedulable there (verified today). - Tag scheme must match what homelab helmrelease.yaml pins (currently 7-char git SHA, e.g. fa035a5). - Registry auth already works from archibald/armini; CI needs the same push creds. Relates to the manual-build reference in memory (Claude builds on archibald + armini by hand today).
CI builds + pushes multi-arch deploy images on git tags
All checks were successful
CI / docker (pull_request) Has been skipped
CI / conflict-check (pull_request) Successful in 1m36s
48ae5adc51
Anima implementation session.
toasterson changed title from WIP: CI builds + pushes multi-arch deploy images on git tags to CI builds + pushes multi-arch deploy images on git tags 2026-07-29 13:52:54 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/Anima!431
No description provided.