如何排除gitlab-ci.yml更改触发作业



我找不到如何忽略.gitlab-ci.yml中所做的更改以触发作业的解决方案。到目前为止,我已经尝试了以下选项:

except:
changes:
- .gitlab-ci.yml

only
- Branch A

但每次我在.gitlab.ci-yml文件中进行更改时,阶段B的作业都会添加到管道中,并显示为跳过。

以下是.gitlab-ci.yml中定义的工作。你有什么建议吗?

我不希望在以下情况下在管道中添加阶段B作业:

i) 针对.gitlab-ci.yml(手动更改文件或git push命令)进行的推送
ii)对.gitlab-ci.yml 的任何合并请求

stages:
- A
- B

Stage A:
stage: A
script:
- echo "TEST"
rules:
- if: '$CI_COMMIT_TAG =~ /^d+.d+.DEVd+/'
tags:
- runner

Stage B:
stage: B
script:
- echo "TEST"
when: manual
tags:
- runner

使用此设置,如果修改了.gitlab-ci.yml,则不会添加Stage B

stages:
- A
- B
Stage A:
stage: A
script:
- echo "Stage A"
tags:
- runner
Stage B:
stage: B
script:
- echo "Stage B"
rules:
- changes:
- ".gitlab-ci.yml"
when: never
- when: manual
tags:
- runner

否则Stage B将显示在管道中,并且可以手动运行。使用GitLab CI CE 14.1.0进行测试。

您能尝试使用workflow规则吗?它应该确定是否创建了管道。

p.S.:几年前有人抱怨在出现异常后无法激活手动作业,但看起来这是一个错误。我找不到后中提到的问题

编辑:

此conf跳过任何更改为README.md.gitlab-ci.yml:的提交

workflow:
rules:
- if:
changes: 
- README.md
- .gitlab-ci.yml
when: never

相关内容

  • 没有找到相关文章

最新更新