如何排除 gitlab-ci.yml 更改触发作业
How to exclude gitlab-ci.yml changes from triggering a job
我无法找到如何忽略 .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+\.DEV\d+/'
tags:
- runner
Stage B:
stage: B
script:
- echo "TEST"
when: manual
tags:
- runner
您可以尝试使用 workflow
规则吗?它应该确定管道是否已创建。
P.S: 有人抱怨a couple of years ago异常后无法激活手动作业,但看起来这是一个错误。我找不到 post
中提到的问题
编辑:
此 conf 跳过任何更改 README.md
或 .gitlab-ci.yml
:
的提交
workflow:
rules:
- if:
changes:
- README.md
- .gitlab-ci.yml
when: never
使用此设置,如果 .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.
进行测试
我无法找到如何忽略 .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+\.DEV\d+/'
tags:
- runner
Stage B:
stage: B
script:
- echo "TEST"
when: manual
tags:
- runner
您可以尝试使用 workflow
规则吗?它应该确定管道是否已创建。
P.S: 有人抱怨a couple of years ago异常后无法激活手动作业,但看起来这是一个错误。我找不到 post
中提到的问题编辑:
此 conf 跳过任何更改 README.md
或 .gitlab-ci.yml
:
workflow:
rules:
- if:
changes:
- README.md
- .gitlab-ci.yml
when: never
使用此设置,如果 .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.