#gitlab #gitlab-ci #pipeline
# #gitlab #gitlab-ci #конвейер
Вопрос:
У меня есть проект A и проект E2E. Я хочу развернуть тест запуска конвейера запуска проекта E2E, но мне просто нужен этап тестирования триггера. нам не нужен триггер E2E для сборки, развертывания … и т. Д
e2e_tests:
stage: test
trigger:
project: project/E2E
branch: master
strategy: depend
stage: test
Я пытался использовать этап в конфигурации. но получил ошибку неизвестные ключи: этап
есть какие-либо предложения?
Ответ №1:
В вашем проекте E2E, который получает триггер, вы можете указать, чтобы задание выполнялось только тогда, когда источником конвейера является триггер, используя rules
синтаксис:
build-from-trigger:
stage: build
when: never
rules:
- if: "$CI_COMMIT_REF_NAME == 'master' amp;amp; $CI_PIPELINE_SOURCE == 'trigger'
when: always
script:
- ./build.sh # this is just an example, you'd run whatever you normally would here
Первый when
оператор when: never
устанавливает значение по умолчанию для задания. По умолчанию это задание никогда не будет выполняться. Затем, используя rule
синтаксис, мы устанавливаем условие, которое позволит выполнить задание. Если CI_COMMIT_REF_NAME
переменная (имя ветви или тега) master
равна, А CI_PIPELINE_SOURCE
переменная (независимо от того, что запустило этот конвейер) равна a trigger
, тогда мы запускаем это задание.
Вы можете прочитать о when
ключевом слове здесь: https://docs.gitlab.com/ee/ci/yaml/#when , и вы можете прочитать rules
документацию здесь: https://docs.gitlab.com/ee/ci/yaml/#rules