У меня есть 2 репозитория Gitlab:
- Проект A
- Интеграционные тесты для Проекта A
Я хочу остановить конвейер / сборку ПроектаA, если интеграционные тесты не пройдены, но в настоящее время конвейер проекта A проходит, даже если интеграционные тесты не пройдены.
My .gitlab-ci.yml
для проекта A определяет эти 7 этапов:
stages:
- build
- test
- publish
- dev-deployment
- staging-deployment
- trigger-integration-tests
- prod-deployment
Второй последнийstage (trigger-integration-tests
) запускает проект интеграционных тестов с помощью вызова API Gitlab с curl
:
trigger-integration-tests:
stage: trigger-integration-tests
image: ubuntu:16.04
script:
- apt-get update && apt-get install -y curl
- "curl -X POST -F token=$INTEGRATION_TESTS_TOKEN -F variables[PROJECT_ID]=$CI_PROJECT_ID -F variables[BRANCH_NAME]=$CI_COMMIT_REF_NAME -F ref=master https://gitlab.mycompany.com/api/v4/projects/123/trigger/pipeline"
allow_failure: false
only:
- master
Я попытался добавить флаг allow_failure: false
, но это не помоглоне могу помочь, поэтому я ищу больше идей.
Я нашел технику триггера и ожидания , но не был уверен, что есть более простое решение.