Типичный пример использования, который некоторые люди сочтут полезным.Запустите задание при запросе на слияние.В частности, запустите lint для всех файлов, которые изменяются в целевой ветви.
Как предполагает один из ответов, мы можем получить имя целевой ветви через CI_MERGE_REQUEST_TARGET_BRANCH_NAME
переменную ( список предопределенных переменных ).Мы можем использовать git diff --name-only origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
, чтобы получить список файлов, которые были изменены.Затем передайте их линтеру через xargs
.Пример конфигурации может выглядеть следующим образом.
code_quality:
only:
- merge_requests
script:
- git diff --name-only origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME | xargs <LINT_COMMAND_FOR_FILE>