如果提交信息以特定字符串开头,请忽略 Jenkins 作业。

6
我希望在提交信息以特定字符串开头时,能够忽略运行Jenkins的作业。我尝试添加“其他行为”和“忽略包含特定消息的提交”的功能:enter image description here。也就是说,如果提交信息以 “doc!” 开头,则不运行该作业。我尝试了几个在线正则表达式匹配器,认为 ^doc!.* 正确。但即使我的提交信息确实以 “doc!” 开头,Jenkins仍会执行该作业。我做错了什么?
2个回答

5

虽然@devanshu-dwivedi的回答可能有效,但我尝试更改正则表达式,我的方法似乎也可以工作:

(?s)^doc!.*

我不太确定为什么会这样。文档说使用(?s)检查提交消息中的多个注释行。但是如果不使用(?s),即使对于一行提交消息的单个提交,它也不能为我工作。


@Devanshu Dwivedi:我想在提交信息中包含“ci skip”文本时跳过Jenkins构建。我编写了以下代码来实现此目的。需要对此提供意见或更好的解决方案。 builders: - conditional-step: condition-kind: regex-match regex: .*ci\W+skip.* label: $GIT_COMMIT on-evaluation-failure: run - rameshthoomu

0
Jenkins Git插件可以让你访问环境变量GIT_COMMIT,其中当然包含了当前的git提交哈希值。使用[Jenkins条件步骤]并构建一个执行以下bash shell的步骤:
echo "==========================="

if [ "git show $GIT_COMMIT | grep ".doc" == false  ] ; then
    echo "pattern failed";
    exit 1
else
    echo "ok"
fi

echo "==========================="

请注意,如果 shell 失败,则构建也会失败。

如果提交包含匹配短语,则构建将失败。问题是要忽略它(实际上特别指出“不要运行该作业”)。如果之前没有错误状态,那么它肯定不应该将分支置于错误状态。对于可以使用env.GIT_COMMIT访问的管道脚本本身很容易检查的内容来说,这也是一个不必要的shell脚本。 - Vala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接