2016-02-17 27 views
0

在詹金斯的配置,我有以下代码:詹金斯构建运行脚本,1号出口,但它并不标志着构建是失败的

sh example.sh test 

example.sh具有下面的代码:

aws s3 cp ./Bucket $S3BUCKET --recursive --content-type "video/mp4" --cache-control "max-age=$MAXAGE" --exclude "*" --include "*.mp4" --profile $PROFILE 

if [ "$?" -ne 0 ]; then 
    exit 1 
fi 

当我查看控制台输出时,运行上述命令时出现错误,但它不会退出1并将构建标记为失败。我看到错误文字“无法将文件部署到S3存储桶”,但该版本未标记为故障。所以1号出口不运行。

这是为什么发生?

+0

您是否尝试过运行'AWS S3 CP构建失败...'命令手动,看看它正确设置$?错误?另外在jenkins脚本中,'-e'标志可能会在之前的某个位置用set + e命令取消设置。 – izzekil

+0

你是什么意思由jenkins脚本中的'-e'标志可能会被设置在前面的某个位置+ e –

+0

我的意思是默认情况下,Jenkins shell脚本调用带有标志'-xe'的shell。 -x用于广泛的日志记录,'-e'用于任何命令返回非零退出代码时立即中止脚本执行。 – izzekil

回答

0

使用Log Parser Plugin,以检查是否无法文件部署到S3存储文本输出,如果是

+0

这可能是一个有效的修复,但不能回答问题。 – Martin

+0

aws命令as-is在任何情况下都返回退出代码0,因此您不能依赖退出代码。相反,您可以检查错误文本的输出 – yorammi

+0

当出现错误时,没有aws命令实际返回非零值。问题是当我打电话给出口1 - 詹金斯没有失败的构建。 –