【发布时间】:2020-03-23 13:25:30
【问题描述】:
我只想为merge_requests refs 运行作业,并且当指定文件发生更改时,according to official doc 我在 .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 有一些变化 存储库根目录中的文件。
test: script: npm run test except: refs: - master changes: - "README.md"
我只想在更改指定文件时为 MR 和启动此作业。 我怎样才能实现这种行为?
如果删除refs部分,它仅在文件更改时有效,但官方文档不建议这样做,因为我想在管道中使用它:
If only:changes with only allow merge requests to be merge if 管道成功,如果您不这样做,可能会导致不良行为 也只能使用:merge_requests。
【问题讨论】:
标签: continuous-integration gitlab yaml