#gitlab #continuous-integration #logic #gitlab-ci
#gitlab #непрерывная интеграция #Логические #gitlab-ci
Вопрос:
В правилах Gitlab CI Gitlab проверяет, присутствует ли одно из правил, затем он выбирает, добавлять задание или нет. Я хочу проверить все условия, и если все в порядке, он может добавить задание, в противном случае он не должен добавлять его в конвейер:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" amp;amp; $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
- changes:
- filder1/*.xml
В этом примере я пытаюсь указать gitlab добавлять задание только в том случае, если некоторые XML-файлы были изменены, и есть запрос на слияние для объединения с основной веткой.
Ответ №1:
Вы должны просто объединить оба условия в одно сопоставление. Т.Е. Удалить лишнюю черту перед changes
:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" amp;amp; $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
changes:
- filder1/*.xml
Но, пожалуйста, также примите во внимание, что действие по умолчанию on_success
равно, поэтому вам следует добавить другое сопоставление с never
, чтобы предотвратить добавление задания:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" amp;amp; $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
changes:
- filder1/*.xml
when: on_success
- when: never