Documentation
¶
Overview ¶
Package main is wand's image build script: it builds the two container images from the checkout it is run in, proves what the image Gate proves, and either keeps them on this machine or pushes them by digest for the release workflow to publish (spec #33, section 14; tickets #55 and #60).
go run ./internal/tools/docker [-suite] [-push <file>]
It writes the .dockerignore, builds the runtime image and then the :dev image on top of the one it has just built, runs the manager and Chrome out of the runtime image and holds the version Chrome reports to the Target Chrome pin, and with -suite runs wand's whole suite and the Zero leftover check inside the :dev image against this checkout. Each image is built for the machine's own platform, as the image jobs build theirs. Run it from the module root, as go generate runs the generators.
With -push it builds the same two images with buildx and pushes them under no tag at all, writing the two manifest digests to the file named. A tag of the release is a manifest of both architectures, which the release workflow makes from the digests of its two image jobs once both have pushed; this tool creates no tag and logs in to no registry, which the workflow does before it runs this. Pushing needs a builder that can export an image, so the workflow makes a docker-container one first.