Исполняемые файлы Go для задач concourse ci

Каковы некоторые хорошие шаблоны для использования go в задачах concourse-ci. Например, должен ли я создавать файлы локально со всеми зависимостями и возвращать кросс-компилированные двоичные файлы в репозиторий? Должен ли я построить зал перед запуском задачи?

Примеры того, что люди делают здесь, были бы великолепны. Публичные репозитории пайплайнов/задач еще лучше.


person Andy Hume    schedule 16.12.2016    source источник


Ответы (1)


Насколько я вижу, в настоящее время есть 3 варианта обработки сборок go:

  1. Использовать торговлю
  2. Явно объявите зависимости как ресурсы собрания
  3. Поддерживайте образ докера с уже включенными необходимыми зависимостями.

У всех вариантов есть плюсы и минусы. В настоящее время мне больше всего нравится первый вариант, поскольку ответственность за обработку зависимостей лежит на сопровождающих проекта, и есть очень четкий способ увидеть, какие версии/ревизии зависимостей используются, т. е. просто проверить конфигурацию инструмента поставщика, но это не так. заставить вас иметь весь код зависимостей в репозитории проекта.

Второй вариант следует «философии» go, заключающейся в постоянном отслеживании master, но может привести к более медленным сборкам (concourse необходимо будет регулярно проверять каждый отдельный ресурс) и может привести к внезапному сбою из-за изменений в зависимостях.

Третий вариант позволяет вам неявно исправить ревизию зависимостей в образе докера, в этом отношении он похож на первый, однако требует поддержки образов докеров (не обязательно означает 1 на проект, но может означать более одного в зависимости от количества проектов, использующих эту опцию, и наличия конфликтующих версий зависимостей между ними)

person pns    schedule 02.03.2017