build binaries and upload them on gh release
build images and push to dockerhub
using buildx builds binaries targeting 4 different os/arch combinations and using the same Dockerfile builds 2 images targeting different archictectures.
reuses layers and caches between these 2 builds. uses host platform as much as possible to achieve fast go build, only uses target platform on the last stage.