在矩阵上重新运行失败的构建的脚本

时间:2019-06-11 13:51:19

标签: jenkins jenkins-job-dsl

我正在尝试准备脚本,以使用Jenkins Job DSL插件配置一些作业。它应该准备具有多个轴(大约50个轴)和配置选项“失败后重试”的矩阵作业,但是我注意到它不支持所有可用选项。

在作业配置中(手动),我们可以设置:

  • 为不稳定的版本和失败重新运行版本
  • 仅针对矩阵上出现故障的零件重新运行构建
  • 延迟重试构建
  • 连续失败构建的最大数量

Jenkins Job DSL具有:

  • fixedDelay(int delay)
  • progressiveDelay(整数增量,最大整数)
  • rerunIfUnstable(boolean rerunIfUnstable = true)
  • retryLimit(int retryLimit) 方法。

当前我的脚本如下:

publishers {
  retryBuild {
    rerunIfUnstable()
    retryLimit(2)
    fixedDelay(0)
  }
}

不幸的是,我无法配置选项:“仅针对矩阵上的故障零件重新运行” ...这是必要的,因为我不想因为一个零件失败而重新运行所有零件。

是否有可能做到这一点?不必由Job DSL插件完成(但当然不是手动完成)。

该项目的特征有时会导致某些部分出现故障,这就是为什么需要重新运行的原因。

1 个答案:

答案 0 :(得分:1)

内置DSL不支持所有选项。但是Dynamic DSL确实:

matrixJob('example') {
  publishers {
    naginatorPublisher {
      regexpForRerun(null)
      rerunIfUnstable(true)
      rerunMatrixPart(true)
      checkRegexp(false)
      maxSchedule(2)
      delay {
        fixedDelay {
          delay(0)
        }  
      }
    } 
  }
}