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号