Emissary 4's build system is so very different from Emissary 3's that I think the smart move here is to toss the existing CI pipeline and recreate something simpler. My gut feel (which might well be wrong!) is that the most sane path forward is maybe to start with a pipeline that does something like
run lint
run the unit tests
if that’s OK, do make images so that goreleaser does its thing and builds images
something something E2E testing here at some point?
if that’s OK and this is a v4* tag, publish packages?
or something like that. The points here:
We can, and should, run static analysis and unit tests before building images at all. (I suppose we could do this in parallel with building images, but let's start with making it a gate?)
We can, and should, build and test images without ever pushing them to GHCR.
We should only publish to GHCR when the repo has an appropriate tag, because goreleaser makes building your own images reliably really easy.
Emissary 4's build system is so very different from Emissary 3's that I think the smart move here is to toss the existing CI pipeline and recreate something simpler. My gut feel (which might well be wrong!) is that the most sane path forward is maybe to start with a pipeline that does something like
or something like that. The points here: