Files
pipeline-actions/build-and-push
Jose Henrique 3fe11a16bc
All checks were successful
Test build-and-push (self-test) / Build tiny multi-arch image (push) Successful in 9s
fix(build-and-push): build via docker context, not buildx-create-over-ssh
The 'docker buildx create --name X ssh://...' driver hangs against
docker-build.haven with 'waiting for connection: context deadline exceeded',
even though SSH, the daemon, and dial-stdio all work. Root cause is that
docker-container-driver-over-SSH path; the remote daemon's own default
buildkit (containerd-snapshotter) works fine.

Rework:
- create a docker *context* over SSH and run 'docker --context remote-builder
  buildx build --push' directly (drops docker/build-push-action, which needs
  a named builder)
- (re)install qemu/binfmt on the remote each run when an arm* platform is
  requested (binfmt is kernel state, lost on daemon/host restart -- this was
  causing 'exec format error' for arm64 after the daemon was restarted)
- gentags now emits -t args for the direct buildx invocation

Validated end-to-end on real infra: multi-arch amd64+arm64 build + push to
git.ivanch.me/ivanch/pipeline-actions-selftest:citest, manifest confirmed
multi-arch.
2026-07-12 13:54:52 -03:00
..