Как установить и обновить один этап независимо от нескольких заданий CI с помощью Helmfile? - PullRequest
0 голосов
/ 14 января 2020

Скажем, у нас есть два git интерфейса репо и бэкэнда. И задача состоит в том, чтобы сделать систему постановки, где на PR CI делает сцену с этой веткой. И скажем, у нас есть рулевые диаграммы для них обоих и пара с базой данных и некоторыми кэшами.

Идея, как это сделать: создать репо со всеми графиками и поместить туда helmfile, который соединял их как сцена. Затем упаковал его в контейнер с настроенным helmfile и так далее. Далее, в задании CI используйте этот контейнер после того, как все сборки сделаны (внутри этого задания), чтобы вызвать helmfile с переменной, содержащей тег сборки. И если такой стадии нет, создайте ее, а если есть, просто обновите тег.

Но с этим есть проблема. Когда две сборки, скажем, frontend и backend выполняются одновременно, я думаю, что это может произойти в этом случае: asyn c будет вызван на первом задании, он создаст этап с тегом для этой сборки и установит по умолчанию другой тег и когда вызывается вторая сборка, она обновляет ветку этой сборки и устанавливает по умолчанию ветку из первой сборки. Даже если мы проверим, есть ли этап, который можно вызвать одновременно, и оба получили ответ, которого нет.

Честно говоря, я еще не пробовал. Я нахожусь на стадии разработки основной идеи, как это сделать.

Если кто-то знает, что делать это правильно, даже если это будет совершенно другая идея, я буду очень признателен.

Спасибо)

...