Jenkins的pipeline发生错误后继续执行

问题

       Jenkins的pipeline可以分步骤运行,但是正常运行的情况下,如果有一个错误了,将不会继续运行下面的任务,这样导致了,前面的第一个任务报错了,后面的所有任务都不知道是什么状态,所以如果说一次想看到所有任务的状态的话,这样肯定是不行的,下面是我的解决方法

解决方法

      首先大家应该知道,script 里面可以通过 catchError 来捕捉错误,那样我们只要在里面加入 catchError 就可以避免错误了,但是咱们最后的还需要看到任务的状态,所以下面就是任务状态的解决办法

script 中有 buildResult stageResult 两种记录状态的变量

buildResult是针对整个Stages过程而言,stageResult是针对该Stage而言,而无论buildResult还是stageResult他们都有以下状态

状态名含义
always不论当前状态是什么,都执行
changed只要当前完成状态与上一次完成状态不同就执行
fixed上一次完成状态为失败或者不稳定,当前完成状态为成功时执行
regression 上一次完成状态为成功,当前完成状态为失败、不稳定或中止时执行
aborted当前执行结果是中止状态时(一般为人为中止)执行
failure 当前完成状态为失败时执行
success当前完成状态为成功时执行
unstable当前完成状态为不稳定时执行
cleanup清理条件块,无论当前完成状态是什么,在其他所有条件块执行完成后都执行

那么咱们就可以在 script 里面更改两种状态来表示stage 和 stages 的状态,如下我的代码

    stage('native-lib') {
            steps {
                  script {
                      catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') 
                	{
                        sh '''
                            cd wamr-internal-test/tests/test_samples
                            python3 run.py --name native-lib
                            
                        '''
                	}
                  }
            }
        }
        
        stage('gui') {
            steps {
                  script {
                      catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') 
                	{
                        sh '''
                            cd wamr-internal-test/tests/test_samples
                            python3 run.py --name gui
                        '''
                	}
                  }
            }
        }
        

这样的话任务执行状态如图所示

 子任务执行报错后,继续执行下面的子任务,总任务状态只要有一个报错的任务,就是红色失败状态

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主后端沾点前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值