如果提交消息以给定字符串

时间:2016-04-04 09:26:02

标签: git jenkins

如果提交消息以给定字符串开头,我想忽略运行Jenkins作业。我已尝试添加"其他行为"和"轮询忽略对某些消息的提交":

enter image description here

即。如果提交消息以" doc!"开头,我想忽略这份工作(在我的世界中意味着不能完成工作)。我已经尝试了几个在线正则表达式匹配器,我认为^doc!.*的正则表达式是正确的。但即使我的提交消息确实以" doc开头!"这项工作由詹金斯执行。我做错了什么?

2 个答案:

答案 0 :(得分:3)

虽然@ devanshu-dwivedi的答案可能有效,但如果我将正则表达式更改为:

,我的方法似乎也能正常工作

(?s)^doc!.*

我不确切地知道为什么会这样。文档说明使用(?s)检查提交消息中的多个注释行。但是,如果不使用(?s),即使对于单行提交消息的单个提交,它也不适用于我。

答案 1 :(得分:1)

Jenkins Git插件向您公开环境变量GIT_COMMIT,当然,它包含当前的git commit hash。使用[Jenkins条件步骤]并构建一个执行以下bash shell的步骤:

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

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

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

并标记如果shell失败,则构建失败。