在Jenkins的工作中,我正在运行一个shell脚本,成功 在Postbuild中触发下游项目。
我遇到问题,因为我的shell脚本在两个中成功了 场景。对于Ex,让我们考虑场景-A和场景-B。
如果脚本在场景A中成功,那么它应该触发 下游项目,但如果脚本成功与场景B然后 工作应该结束,不应该触发下游脚本。
我尝试匹配Text并使用Text Finder插件,但它会构建 不稳定。我不希望工作状态为“不稳定”或“失败” 情景-B通过。我能够成功匹配字符串使用 在Execute shell脚本插件中编写的脚本很少,但我应该给出什么 完成詹金斯工作的成功状态并避免 字符串匹配时的下游项目。
执行Shell插件包含
cd dir
./myscript
string_name=`cat aaa.log | grep foo`
if [ string_name == "foo" ] then;
\\Command to aviod downstream project
fi
答案 0 :(得分:1)
听起来我最好通过Build Flows https://wiki.jenkins.io/display/JENKINS/Build+Flow+Plugin?focusedCommentId=60917290或Pipeline 2.0 https://jenkins.io/doc/book/pipeline/
尝试实现这个逻辑构建流程可能更接近你现在已经拥有的东西(它本身就是传统工作和Pipeline 2.0之间的桥梁)。
你的逻辑就像(Build Flow中的groovy代码或Pipeline 2.0 Jenkins文件):
if (build('scenario-B-Job'))
return
else if build('scenario-A-Job') {
build('downstream-Job')
}
不确定我的逻辑是否完全正确(你没有提到A和B是否相互排斥,或者它们是否可以/必须并行运行)但我认为你明白这一点。