如果提交消息以给定字符串开头,我想忽略运行Jenkins作业。我已尝试添加"其他行为"和"轮询忽略对某些消息的提交":
即。如果提交消息以" doc!"开头,我想忽略这份工作(在我的世界中意味着不能完成工作)。我已经尝试了几个在线正则表达式匹配器,我认为^doc!.*
的正则表达式是正确的。但即使我的提交消息确实以" doc开头!"这项工作由詹金斯执行。我做错了什么?
答案 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失败,则构建失败。