我正在使用声明性管道语法。如果构建失败,我想重新触发构建3次。我想在我的管道中添加此步骤,可能是在发布步骤中:
如下所示:

post { 
    failure{ 
        retrigger //try for 3 times atleast
    }
} 


#1 楼

另一个答案不正确。确实有一个内置函数可以重试作业的任意部分,称为retry

如果要重试整个作业三次,可以将整个作业包装在retry块中:

retry(count: 3) {
  // your job definition here
}


但是,如果安全的话,我建议包装单个步骤或阶段:

stage('my first stage') {
  retry(count: 3) {
    sh('some-command')
    sh('some-other-command')
  }
}


评论


谢谢jayhendren,这就是我想要的。非常感激。

–罗恩·鲍勃(Ron Bob)
18-10-29在15:49

@RonBob也许您可以接受答案

– 030
19年3月11日在21:29

#2 楼

使用声明性管道时,全局选项中有一个重试参数:

pipeline {
    agent any
    options {
        retry(3)
    }
    stages {
        ...
    }
}


#3 楼

似乎没有内置的管道步骤可以执行此操作,而且似乎也没有现有的插件可以与管道一起使用。我建议您看一下stackoverflow答案:https://stackoverflow.com/a/46852240/1019835

您可以将该代码实现为共享库,从而使您可以共享自己的代码。项目之间的解决方案。看一下本教程可以做到这一点:https://jenkins.io/doc/book/pipeline/shared-libraries/

评论


谢谢!真的很感谢。如果我只是想在后期构建失败后重新触发工作该怎么办。不管多少时间?

–罗恩·鲍勃(Ron Bob)
18-10-13在12:01