CI_CD前端發布增加cnpm編譯失敗跳出不部署的邏輯
原創
CI/CD前端發布增加cnpm編譯失敗跳出不部署的邏輯
Jenkins Pipeline中添加編譯失敗終止部署的邏輯,以下是修改建議:
stage('代碼編譯'){
when { environment name: 'deploy_env', value: 'deploy' }
steps {
script {
try {
sh """
set -e # 關鍵修改:任何命令失敗立即退出
cnpm install --unsafe-perm --registry=https://registry.npmmirror.com/
cnpm run build:prod
pwd
"""
} catch (Exception e) {
currentBuild.result = 'FAILURE'
error("編譯失敗,終止流水線") # 顯式終止流程
}
}
}
}
修改說明:
- 強制退出機制
set -e # Shell腳本中任意命令失敗立即退出
- 確保
cnpm install或build失敗時立即終止后續操作
- 異常捕獲結構
script {
try {
// 執行編譯
} catch (Exception e) {
currentBuild.result = 'FAILURE'
error("編譯失敗,終止流水線")
}
}
- 顯式捕獲執行異常
- 通過error命令強制終止流水線
- 流程控制優化
- 當編譯階段失敗時,Jenkins會自動跳過后續的
部署階段 - 添加顯式error命令可確保及時終止避免潛在異常
完整階段結構示意:
stage('代碼編譯'){
when { environment name: 'deploy_env', value: 'deploy' }
steps {
script {
try {
sh """
set -e
cnpm install --unsafe-perm --registry=https://registry.npmmirror.com/
cnpm run build:prod
pwd
"""
} catch (Exception e) {
currentBuild.result = 'FAILURE'
error("Build failed, aborting deployment")
}
}
}
}
該方案通過組合Shell層和Jenkins層的雙重保障機制,確保:
- 任何依賴安裝或構建步驟失敗立即停止
- 異常會被Jenkins明確捕獲并終止流程
- 部署階段在編譯失敗時不會被執行
建議同時添加構建通知機制(如郵件/Slack通知)以便及時獲知失敗信息。

浙公網安備 33010602011771號