Collapse Set image tag, Build Docker image, and Push image steps into
a single step that computes TAG inline, eliminating the dependency on
$GITHUB_OUTPUT which is not reliably available in Gitea Actions runners.
Also moves registry login before the build+push step for correct ordering.
Closesleeworks-agents/gitea-mobile#25
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Gitea Actions workflow used ${{ github.sha }} which is GitHub Actions
syntax. In Gitea Actions the correct context variable is ${{ gitea.sha }}.
This caused the image tag SHA component to be empty.
Closesleeworks-agents/gitea-mobile#20
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add multi-stage Dockerfile producing a minimal distroless image and
Gitea Actions CI workflow for automated testing and image publishing.
- Dockerfile: multi-stage build (golang:1.22-alpine -> distroless/static)
with stripped binary (~15-20MB image), runs as nonroot user
- .dockerignore: excludes .git, docs, nix files from build context
- .gitea/workflows/build.yaml: CI pipeline that runs tests, builds
Docker image, and pushes to Gitea registry with timestamp+SHA tags
for Flux image automation
Closesleeworks-agents/gitea-mobile#7
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>