Привет всем.
Имеется 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 всё равно запустится.
Есть идеи?
Спасибо