[英]GitLab CI - avoid build when adding tag
添加 git 标签时,如何防止触发 gitlab ci 管道? 我在本地运行这个命令(而不是在 gitlab-ci 作业中)
git tag -a "xyz"
然后推标签; 这会触发各种管道。 我想排除其中一些管道的运行。
我正在尝试从诸如此类的问题中改变想法; 这个问题只使用 ,我想排除,所以我正在尝试除外。 那里的答案有两种变体,一种有参考文献,一种没有。
build:
# ... my work here ...
except:
- tags
build:
# ... my work here ...
except:
refs:
- tags
两者似乎都没有任何效果; 我添加了一个标签,构建仍然发生。
我的理解在这里可能完全错误,因为单词标签似乎有三种可能的含义,在阅读文档或示例时,我并不总是确定哪个含义适用:
我有兴趣控制第一种情况下会发生什么。 到目前为止,从评论中可以清楚地看出“except: -tags”与我的案例无关,那么有没有什么方法可行呢?
如果你想跳过标签的构建, Except tags
正是你应该使用的。
您需要确保了解提交 vs 分支 vs 标签
为了说明将标记的提交推送到 gitlab 时会发生什么,我执行了以下操作:
.gitlab-ci.yml
,内容如下:tests_always_run:
script:
- echo I should always execute
tests_except_tags:
script:
- echo I skip tagged triggers
except:
- tags
--follow-tags
推送以确保标记也传播到服务器:git add .gitlab-ci.yml
git commit -m 'my great yml with except tags'
git tag -a "abc" -m "Test tag"
git push --follow-tags
如果你想跳过选定提交的 CI,那么你可以使用git push -o ci.skip ,灵感来自这篇文章
它看起来像GitLab建议使用rules
,而不是except
按文件
only 和 except 没有被积极开发。 rules 是控制何时向管道添加作业的首选关键字。
所以它会
your_job:
stage: your_stage
script:
- echo "Hello"
rules:
- if: $CI_COMMIT_TAG
when: never
- when: always
(注意:这是一个格式化的评论而不是一个答案)
为了调试触发管道的条件:
gitlab 的文档提到了在运行 CI 作业时设置的几个变量,其中:
CI_COMMIT_REF_NAME
:为其构建项目的分支或标记名称CI_COMMIT_BRANCH
:提交分支名称。 仅在构建分支时出现。CI_COMMIT_TAG
:提交标签名称。 仅在构建标签时出现。
让您的构建作业输出其中一些变量(例如: echo "triggered by ref : " $CI_COMMIT_REF_NAME
)以查看触发您的作业的原因。
我遇到了同样的情况,我的解决方法是:
这两个阶段都在 my.gitlab-ci.yml 文件中配置,具有不同的名称“ Dev-UnitTests ”,它仅在有人提交到存储库时执行,对分支“ test ”的标签没有影响
Dev-UnitTests:
stage: pruebas
script:
- mvn $MAVEN_CLI_OPTS test
artifacts:
when: always
reports:
junit:
- target/surefire-reports/*Test.xml
- target/failsafe-reports/*Test.xml
cobertura: target/site/jacoco/jacoco.xml
tags:
- shell
except:
- test
- tags
单元测试,仅在分支测试上完成合并时运行
Unit Tests:
stage: pruebas
script:
- mvn $MAVEN_CLI_OPTS test
artifacts:
when: always
reports:
junit:
- target/surefire-reports/*Test.xml
- target/failsafe-reports/*Test.xml
cobertura: target/site/jacoco/jacoco.xml
tags:
- shell
only:
- test
创建标签时没有再次运行任何管道,希望对您有所帮助。
关键是:
...
except:
- tags
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.