2016-02-17 26 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 - 詹金斯沒有失敗的構建。 –