Я хочу запустить задание только для merge_requests
ссылок и при изменениях для указанных файлов, в соответствии с официальным делом c я создаю это задание в .gitlab-ci.yml:
merge-request-test:
<<: *some_anchor
only:
refs:
- merge_requests
changes:
- "*.py"
- "**/*.py"
- postman/some-file.json
Но эта работа начинается, даже если я изменяю любой другой файл.
Я понимаю, что GitLab CI применяет правило OR
для refs
и changes
разделов:
В приведенном ниже примере тестовое задание не будет создано, если любой из следующих условий:
Конвейер работает для мастера. В файле README.md есть изменения в каталоге root репо.
test:
script: npm run test
except:
refs:
- master
changes:
- "README.md"
Я хочу запустить это задание только для MR и при изменении указанных файлов. Как я могу добиться такого поведения?
Если удалить раздел refs
, он работает только при изменении файлов, но официальный do c не рекомендует делать это, потому что я хочу использовать его в конвейерах:
При использовании только: изменения с разрешением объединения запросов только в случае успешного выполнения конвейера могут привести к нежелательному поведению, если вы также не используете только: merge_requests.