документации по интеграции с Gitlab https://ru.werf.io/documentation/v1.2/advanced/ci_cd/gitlab_ci_cd.html есть такая строчка
Сборка и публикация выполняется при каждом push в репозитории.
правильно ли это получается, что коммит в дев ветку собирает контейнер, потом МР в staging собирает контейнер и я его проверяю, а потом делаю МР в master где опять собирается контейнер и идет в прод? вроде кодовая база одна и та же везде, но по факту это разные контейнеры, с разными sha commit'ами.
Нет, werf делает сборку только если поменялся контент гита, ну покрайней мере продает идею contentbased build Однако если речь идет просто как о факте тригерра CI - да он запускается на каждый чих - а в гитлабе так и вообще для MR и для ветки запустятся два пайплайна если не указать в workflow запрет на паплайн для ветки при открытом MR
тогда я не очень понимаю как это работает. вот я делаю при коммите в дев werf publish ${DOCKER_REGISTRY} --tag-custom ${CI_COMMIT_SHA} после применения МР в мастер у меня же новый коммит, получается будет сборка контейнера и его публикация? а если нет, то какой контейнер будет залит в прод?
Зависит от мерджстратеджи. Плюс ты вон поставил тэгкастом коммитша - он возьмет уже собранный имейдж который не изменился так как гит не менялся и просто повесит новый тэг
ну да. как мне кажется в этом то и проблема. я деве тестирую один образ, например server:825f3ec8 а при попадании в прод этот же образ тегируется server:1627142b казалось бы, какая разница, образ то один и тот же. но у меня документация, отчет по тестированию и тд, где я указываю коммит. а в прод выливается другой образ. я придумал только способ создания МР с fast-forward, но мб werf как-то по другому может решить эту проблему?
Обсуждают сегодня