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号