DOCKER_BUILDKIT=1 requires the buildx plugin which isn't installed on
the runner. Install it explicitly then use docker buildx build --load
(outputs to local daemon so the push step can tag+push normally).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Gitea Dockerfile uses FROM --platform=$BUILDPLATFORM which requires
BuildKit. The GCE runner defaults to the legacy builder — set
DOCKER_BUILDKIT=1 to enable it.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Build and push to Artifact Registry on merge to dev/stage/main:
dev → gitea:dev
stage → gitea:stage
main → gitea:latest + gitea:<sha>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ToActionWorkflowJob was calling ToActionsStatus(job.Status) for every
step, making each step reflect the whole job conclusion instead of its
own state. Replace the inline loop with the existing ToActionWorkflowStep
helper which correctly uses step.Status.
Add .gitea/workflows/build-push.yaml to build and push a Docker image to
Artifact Registry on push to this branch, enabling deployment to GKE.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds HookEventWorkflowStep event type that fires on every step state
transition (queued -> in_progress -> completed). Follows the same
pattern as the existing workflow_job events.
- New WorkflowStepPayload struct with run/job/step context
- WorkflowStepStatusUpdate notifier interface + dispatch
- Step state change detection in UpdateTask runner endpoint
- Fix: register workflow_step in updateHookEvents API mapping
- Full test coverage mirroring workflow_job tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>