Go умеет компилировать под любую ОС и архитектуру прямо с твоей машины — достаточно задать переменные GOOS и GOARCH. Никаких дополнительных тулчейнов ставить не нужно.
GOOS=linux GOARCH=amd64 go build -o app-linux ./cmd/server
GOOS=windows GOARCH=amd64 go build -o app.exe ./cmd/server
GOOS=darwin GOARCH=arm64 go build -o app-mac ./cmd/server
Работает потому что Go компилирует в нативный код сам, без зависимости от системного компилятора. Единственное ограничение — если используешь cgo, кросс-компиляция усложняется, потому что нужен C-компилятор для целевой платформы.