這是一個問題,因為我們有一個回傳 2 作為警告的可執行檔案。我們不想因為這個而使 Jenkins 構建管道失敗。我們如何修改管道以接受退出代碼 2,并根據退出代碼列印出合理的警告訊息?
D:\Stage>c:\bin\mycommand
script returned exit code 2
uj5u.com熱心網友回復:
當您運行sh或bat在 Jenkins 管道中運行時,對于任何非零退出代碼,它總是會導致構建失敗(并拋出例外)——并且無法更改。
你可以做的是使用returnStatus的的SH步(或CMD),這將回傳腳本的退出代碼,而不是失敗的構建,然后就可以使用這樣的:
pipeline {
agent any
stages {
stage('Run Script') {
steps {
script {
def exitCode = sh script: 'mycommand', returnStatus: true
if (exitCode == 2) {
// do something
}
else if (exitCode){
// other non-zero exit codes
}
else {
// exit code 0
}
}
}
}
}
}
這種方法的唯一缺點是returnStatus不能與 一起使用returnStdout,因此如果您需要獲取回傳的輸出,則需要以另一種方式獲取它(例如寫入檔案然后讀取它)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318826.html
