当只有降价变化时,有没有办法跳过管道?
Is there a way to skip a pipeline when there are markdown changes only?
目标
发布管道应该开始针对特定分支的部署。
如果只有 文档更改,这应该不会发生(跳过作业)。 (*.md
个文件)
问题
If you change multiple files, but only one file ends in .md
, the build
job is still skipped. The job does not run for any of the files.
https://docs.gitlab.com/ee/ci/jobs/job_control.html#onlychanges--exceptchanges-examples
那么,是否有可能像上面提到的那样指定一个规则?
到目前为止我尝试了什么(摘录)
那么,如果 "*.md"
不起作用,是否可以还原它?
"**/!(*.md)" # Every file except *.md
这不会执行任何操作
rules:
- if: $CI_COMMIT_BRANCH == "main"
changes:
- "**/!(*.md)" # Every file except *.md
这总是执行
rules:
- if: $CI_COMMIT_BRANCH == "main"
- changes:
- "**/!(*.md)"
问题
我必须使用自定义变量来解决这个问题还是有更简单的方法?
联系 GitLab 支持后,我可以在此处记录,目前无法做到这一点。
已针对此特定用例创建了一个新问题:
https://gitlab.com/gitlab-org/gitlab/-/issues/348141
下面是更优雅的解决方案,记录在 GitLab 文档中。
所以有两种方法。
要在不触发管道的情况下推送提交,请添加 ci skip 或 skip ci,使用任何大写形式添加到您的提交消息中。
或者,如果您使用的是 Git 2.10 或更高版本,请使用 ci.skip Git 推送选项。 ci.skip 推送选项不会跳过合并请求管道。
git 推送 --push-option=ci.skip
对于 GL 版本 2.18 及更高版本,即使是短版本
git push -o ci.skip
参考:
目标
发布管道应该开始针对特定分支的部署。
如果只有 文档更改,这应该不会发生(跳过作业)。 (*.md
个文件)
问题
If you change multiple files, but only one file ends in
.md
, thebuild
job is still skipped. The job does not run for any of the files.
https://docs.gitlab.com/ee/ci/jobs/job_control.html#onlychanges--exceptchanges-examples
那么,是否有可能像上面提到的那样指定一个规则?
到目前为止我尝试了什么(摘录)
那么,如果 "*.md"
不起作用,是否可以还原它?
"**/!(*.md)" # Every file except *.md
这不会执行任何操作
rules:
- if: $CI_COMMIT_BRANCH == "main"
changes:
- "**/!(*.md)" # Every file except *.md
这总是执行
rules:
- if: $CI_COMMIT_BRANCH == "main"
- changes:
- "**/!(*.md)"
问题
我必须使用自定义变量来解决这个问题还是有更简单的方法?
联系 GitLab 支持后,我可以在此处记录,目前无法做到这一点。
已针对此特定用例创建了一个新问题:
https://gitlab.com/gitlab-org/gitlab/-/issues/348141
下面是更优雅的解决方案,记录在 GitLab 文档中。
所以有两种方法。
要在不触发管道的情况下推送提交,请添加 ci skip 或 skip ci,使用任何大写形式添加到您的提交消息中。
或者,如果您使用的是 Git 2.10 或更高版本,请使用 ci.skip Git 推送选项。 ci.skip 推送选项不会跳过合并请求管道。
git 推送 --push-option=ci.skip 对于 GL 版本 2.18 及更高版本,即使是短版本
git push -o ci.skip
参考: