Jenkins条件步骤没有完成shell脚本

时间:2014-05-30 15:37:48

标签: bash jenkins conditional

好的,所以我被要求允许一个“安全的话”"在我们的Git提交注释中,如果开发人员想要在没有构建的情况下提交,我们的CI构建将会跳过。那么,我在Run中设置了一个带有Execute shell的Conditional Step(多个)?领域。我正在运行以下命令以查看提交消息中是否包含安全字,如果是,则不要运行"不要运行"构建,如果不是,则运行构建。如果我在这个shell中添加一个标题(即#!/ bin / bash),我会收到一个错误。没有它,我的脚本在设置RUN变量后停止。 IF..THEN..ELSE循环甚至没有开始运行。这是我的剧本..

RUN=$(git --no-pager log -1 --pretty=online:"%s" --grep "keyword")
if [ "$RUN" != "" ];
    then exit 0
else
    exit 666
fi

"安全字"的输出不存在看起来像这样:

++ git --no-pager log -1 --pretty=online:%s --grep blech
+ RUN=
Run condition [Execute Shell] preventing perform for step [BuilderChain]
Finished: SUCCESS

使用"安全词"目前,输出是这样的:

++ git --no-pager log -1 --pretty=online:%s --grep initializer
+ RUN='online:CVirtualBroker  - Tweak construction to use initializer lists - 
Run condition [Execute Shell] preventing perform for step [BuilderChain]
Finished: SUCCESS

请注意,RUN变量已设置,然后脚本停止。是什么给了什么?

AJ

1 个答案:

答案 0 :(得分:1)

你在If语句的末尾有一个分号

if [“$ RUN”!=“”];

让它停止......

之后的命令是退出0 ,所以我假设你的进程停止了