Jenkinsfile并行阶段配置:阶段1失败立即终止,阶段2失败则继续
Jenkins并行流水线自定义失败处理方案
需求:并行阶段中,阶段1失败需立即终止整个流水线;阶段2失败允许流水线继续执行。failfast: true会在任一阶段失败时终止流水线,无法满足需求;尝试过catchError但未解决问题,以下是可行方案:
修正并优化后的Jenkinsfile示例:
pipeline { agent any stages { stage('Hello') { stages { stage('Parallel Tasks') { parallel { stage('Stage 1') { steps { // 示例:模拟失败,取消注释可测试终止逻辑 // sh 'exit 1' echo 'Executing Stage 1' } // 阶段1不做错误捕获,失败直接终止流水线 } stage('Stage 2') { steps { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE', continuePipeline: true) { // 示例:模拟失败,取消注释可测试继续执行逻辑 // sh 'exit 1' echo 'Executing Stage 2' } } } } } } } } post { always { echo '流水线执行完成' } } }
关键逻辑说明:
- Stage 1:未添加错误捕获逻辑,一旦执行失败,Jenkins会默认终止整个流水线,符合"失败即中止"的需求。
- Stage 2:通过
catchError配置三个核心参数:buildResult: 'FAILURE':标记整个构建结果为失败(若需保持构建成功可设为SUCCESS,但不建议隐藏失败状态)stageResult: 'FAILURE':标记当前阶段为失败,便于在Jenkins界面直观查看阶段状态continuePipeline: true:强制流水线继续执行后续步骤(包括post阶段)
内容的提问来源于stack exchange,提问作者Th15
相关产品推荐
相关产品推荐

