@akdes

Gitlab CI постройка двух приложений с общими стэйджами и зависимостями не тормозящие друг друга?

Привет всем.
Имеется monorepo с проектом на angular - монорепо это когда несколько продуктов разрабатываются в одном репозитории.
Когда выходит релиз, строить нужно на данный момент 2 аппликации- npm install, ng build, docker build для каждой

Есть файл gitlab-ci.yml и две фазы: buildng и builddocker (на самом деле больше, но тут это не важно)
в первом происходят пару манипуляций с файлами и постройка приложения (ng build)
во втором строится и пушится докер имэйдж.

так как аппликации две, "работ" (jobs) на каждую фазу тоже по две:

stages:
   - buildng
   - builddocker

buildng_app1:
   stage: buildng
   allow_failure: false
   ...
   script: 
       - do the job for app1

buildng_app2:
   stage: buildng
   allow_failure: false
   ...
   script: 
       - do the job for app2

builddocker_app1:
   stage: builddocker
   allow_failure: false
dependencies:
   - buildng_app1
   ...
   script: 
       - do the job for app1

builddocker_app2:
   stage: builddocker
   allow_failure: false
dependencies:
   - buildng_app2
   ...
   script: 
       - do the job for app2


Всё бы ничего, работает отлично... Но, если по каким то причинам buildng_app1 или 2 крэшится, процесс останавливается для всего.
Мне же нужно, что если к примеру buildng_app1 "сломался", то buildng_app2 и builddocker_app2 продолжали свою работу, а builddocker_app1 нет, т.к. его зависимость buildng_app1 не выжила.
Как возможное решение, ставить allow_failure: true, но тогда builddocker_app1 всё равно запустится.

Есть идеи?

Спасибо
  • Вопрос задан
  • 842 просмотра
Решения вопроса 1
@akdes Автор вопроса
Ответ: использовать needs заместо dependencies.

https://habr.com/ru/company/flant/blog/491888/

Обновление гитлаба, первая фича описанная на хабре решает мою проблему - как никогда, вовремя! :D
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы