Лучше ли выполнять программу Go с кодом запуска go. go для реального использования? - PullRequest
0 голосов
/ 29 января 2020

У меня есть конвейер CI / CD, который должен быть кроссплатформенным и работать с несколькими различными гипервизорами. Чтобы не менять задачи сборки для Windows и Linux, я подумал, что Go будет отличным способом написать код один раз и запускать где угодно. Тем не менее, загадка вступает в игру, если Go создает исполняемые файлы, однако моя платформа CI / CD не имеет возможности загрузить exe или бинарный файл во время сборки, чтобы выполнить шаги сборки "нормально" через Go. Я думал, что смогу просто зафиксировать код Go в проекте и использовать:

go run build_step.go

Для каждой задачи сборки, но мне интересно, является ли это приемлемым практическим / практическим вариантом. Я знаю, что это сработает, просто интересно, есть ли лучший способ сделать это. Я использую Azure DevOps Pipelines для того, что это стоит.

1 Ответ

0 голосов
/ 30 января 2020

Вы можете использовать кросс-билд. пример:

GOOS = windows GOARCH = 386 go build -o build.exe build_step. go

или

GOOS = linux GOARCH = arm go build -o build_step. go

...