由于“ job_template”的更改,种子作业每分钟都会无限重复地构建

时间:2019-04-18 13:18:21

标签: jenkins groovy jenkins-job-dsl

我使用jenkins-job-dsl插件。创建了种子作业来运行myJobs.jenkins_jobs文件,在其中写入了作业job_template和另一个作业using 'job_template'。但是,在建立种子作业之后,它将继续一次又一次地构建,直到禁用它为止。

https://jenkinsci.github.io/job-dsl-plugin/#path/job-using中,我看到

  

根据参数所引用的作业模板创建新的作业配置并进行存储。更改模板后,种子作业将尝试重新运行,这会产生级联更改从模板生成的作业的副作用。

但是,我不确定该怎么做才能摆脱这种不断重建的问题。

我的myJobs.jenkins_jobs文件如下:

job('job_template'){
}

job('railgun-db-importer-DSL') {
    using 'job_template'
}

解决方案

错误是每次运行后模板作业的'description'字段都更新了日期-这导致它每次更改一次,并在每次运行时再次运行。在对每个作业和硬编码模板作业的描述分别放置了“描述”之后,它在运行时不会改变,因此我摆脱了永久运行。

1 个答案:

答案 0 :(得分:0)

您不得通过job-dsl维护模板作业。

模板作业的想法是,您可以基于job-dsl以外的现有作业 (这是模板作业),通过job-dsl创建新作业。

通常,如果有一些复杂的插件配置很难直接在job-dsl中实现,则需要这样做-在这种情况下,手动创建模板作业可能会更简单 ,并将其用作通过job-dsl进行进一步配置的基础。

在您的示例中,每条DSL运行都会涉及模板作业。由于修改模板作业会再次触发DSL,因此可能会导致您观察到无限循环。