我在Jenkins中使用了一個shell腳本,它在某個點使用curl將文件上載到服務器。我希望看到產生的任何捲曲產生,但也檢查它是否是我期望的輸出。如果不是,那麼我想將shell錯誤代碼設置爲> 0,這樣Jenkins就知道腳本失敗了。在Jenkins中從curl獲取shell錯誤代碼,同時仍然在控制檯中顯示輸出
我第一次嘗試使用curl -f
,但是這會導致在上傳失敗並且錯誤輸出永遠不會到達客戶端時立即切斷管道。然後我試圖這樣的事情:
curl ...params... | tee /dev/tty | \
xargs -I{} test "Expected output string" = '{}'
此作品從一個正常的SSH外殼,但在詹金斯控制檯輸出我看到:
tee: /dev/tty: No such device or address
我不知道這是爲什麼,因爲我認爲詹金斯是使用正常的SSH shell與slave進行通信。在任何情況下,整個xargs +測試的東西都讓我覺得有點破解。
有沒有一種方法可以在Jenkins中實現這一點,以便我可以看到輸出並測試它是否與特定的字符串匹配?
我仍然不明白爲什麼/ dev/stdout不起作用,但是謝謝/ dev/stderr工作正常並寫入Jenkins控制檯。 –
rundeck是一樣的 – KCD