Приветствую
Как видите из изображения тестовый CI для эксперимента состоит из трех стадий, первая стадия Подготовка ничего особенного)). Вторая стадия это непосредственно ТЕСТ который состоит из четырех джобов, запускается в ручную в зависимости что нужно, обычно запускается только один из них. Вопрос состоит в последней стадии, задумывалось что оповещение в телеграмм(bash script) отправиться если ОДНА ИЗ джоб преведущей стадии завершилась успешно. Но не получается никак это сделать, КАК СДЕЛАТЬ ТАК, ЧТОБЫ ЕСЛИ ОДНА ИЗ ДЖОБ ВТОРОЙ СТАДИИ ЗАВЕРШИЛАСЬ УСПЕШНО, ЗАПУСКАЛОСЬ ДЖОБА ИЗ ТРЕТЬЕЙ СТАДИИ
Вот как сейчас это выглядит:
include:
- project: "devops/public-resources/cicd-templates/telegram-notification"
ref: v1.0.0
file: "template.yml"
stages:
- prepare
- test
- notificatoin
.common_tags: &common_tags
tags:
- tele2-infra-runners
Prepare_job:
stage: prepare
image: alpine:latest
script:
- echo "prepare"
<<: *common_tags
test-one:
stage: test
image: alpine:latest
script:
- echo "test-one"
needs:
- Prepare_job
variables:
JOB_NAME: $CI_JOB_NAME
when: manual
<<: *common_tags
test-two:
stage: test
image: alpine:latest
script:
- echo "test-two"
needs:
- Prepare_job
variables:
JOB_NAME: $CI_JOB_NAME
when: manual
<<: *common_tags
test-three:
stage: test
image: alpine:latest
script:
- echo "test-three"
needs:
- Prepare_job
variables:
JOB_NAME: $CI_JOB_NAME
when: manual
<<: *common_tags
test-four:
stage: test
image: alpine:latest
script:
- echo "test-four"
needs:
- Prepare_job
when: manual
variables:
JOB_NAME: $CI_JOB_NAME
<<: *common_tags
# Notification jobs
Notify Success:
needs:
- test-one
- test-two
- test-three
- test-four
stage: notificatoin
extends: .telegram_notify
variables:
MESSAGE: |
✅ Successfully deployed to Production
test: $JOB_NAME
Text: THIS IS TEST PIPELINE
when: on_success
Notify Failure:
stage: notificatoin
extends: .telegram_notify
variables:
MESSAGE: |
Text: THIS IS TEST PIPELINE
when: on_failure
Notify Success:
needs:
- test-one
- test-two
- test-three
- test-four
Это фигня сверху работает если все джобы второй стадии завершились успешно, нам нужно чтобы если хотябы один завершился успешно, запускалось Notify Success)