Commit Graph
6 Commits
Author SHA1 Message Date
aneurin 7f57e25dcf Build a multi-arch (amd64 + arm64) image (!4)
Build / build-and-push (push) Successful in 6m7s
Co-authored-by: Aneurin Barker Snook <aneurin@aneur.in>
2026-09-07 00:42:58 +00:00
aneurinandClaude Sonnet 5 d7a8a7a21e revert to single-job workflow
Build / build-and-push (push) Successful in 46s
This Gitea instance reports as GHES and rejects the @actions/artifact v2
protocol, so upload-artifact@v4 / download-artifact@v4 fail. Roll the
workflow, Dockerfile and .dockerignore back to the pre-split state
(dd6bb1a): one build-and-push job, no artifact handoff.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 17:10:20 +01:00
aneurinandClaude Sonnet 5 ad4fc7dd7d name the build artifact with its architecture
Build / build-binary (push) Failing after 59s
Build / build-image (push) Skipped
Rename the CI binary and its artifact to zampler-amd64, and make the
Dockerfile arch-agnostic via ARG TARGETARCH / COPY zampler-$TARGETARCH.
Keeps the pipeline single-arch for now but makes adding an arm64 leg a
smaller change later.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 17:07:20 +01:00
aneurinandClaude Sonnet 5 298d2f248e split build workflow into binary and image jobs
build-binary compiles the frontend and Go binary (with the module and
build caches) and uploads it as an artifact; build-image downloads the
artifact and builds/pushes the Docker image from it.

The executable bit is restored after download since upload-artifact
does not preserve it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 16:25:09 +01:00
aneurinandClaude Sonnet 5 dd6bb1a547 build zampler binary in CI instead of the Dockerfile
Build / build-and-push (push) Successful in 5m9s
The Go compile is dominated by modernc.org/libc (~400k lines of
generated Go from modernc.org/sqlite). Inside `docker build` on an
ephemeral runner it recompiled cold every push; on a 1 CPU / 1 GB
runner that took ~10 minutes.

Move the frontend and Go builds into the workflow, where actions/cache
persists ~/.cache/go-build across runs so libc is compiled once. The
Dockerfile is now just an alpine wrapper around the prebuilt
CGO_ENABLED=0 static binary.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 15:26:36 +01:00
aneurin a9a7f7df0a add gitea build workflow
Build / build-and-push (push) Canceled after 12m56s
2026-09-06 14:37:50 +01:00