Примените изменения конвейера GitLab CI/CD для запуска конвейера, инициированного запросом на слияние

# #gitlab #continuous-integration #gitlab-ci

#gitlab #непрерывная интеграция #gitlab-ci

Вопрос:

Я создал новый конвейер CD/CD в GitLab с помощью файла .gitlab-ci.yml в корневом каталоге репозитория в новом проекте с заданием, структурированным следующим образом:

 ... test:  stage: test  script:  - pip install tox flake8  - tox -e py36,flake8  # Run only for merge requests on main branch  rules:  - if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "main"' ...  

GitLab не запускает конвейер, говоря, что в репозитории нет файла .gitlab-ci.yml. Я предполагал, что изменения в конвейере будут применяться к запуску запроса на слияние, который был инициирован. Я могу понять, почему это не так в целях безопасности в общедоступном репозитории, но я хотел бы протестировать изменения конвейера в запросе на слияние, который я создал для своего собственного частного экземпляра GitLab.

Возможно ли это?

Ответ №1:

Это была ошибка программирования. Мне нужно было использовать:

 - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'  

вместо:

 - if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "main"'