我使用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'字段都更新了日期-这导致它每次更改一次,并在每次运行时再次运行。在对每个作业和硬编码模板作业的描述分别放置了“描述”之后,它在运行时不会改变,因此我摆脱了永久运行。
答案 0 :(得分:0)
您不得通过job-dsl维护模板作业。
模板作业的想法是,您可以基于job-dsl以外的现有作业 (这是模板作业),通过job-dsl创建新作业。
通常,如果有一些复杂的插件配置很难直接在job-dsl中实现,则需要这样做-在这种情况下,手动创建模板作业可能会更简单 ,并将其用作通过job-dsl进行进一步配置的基础。
在您的示例中,每条DSL运行都会涉及模板作业。由于修改模板作业会再次触发DSL,因此可能会导致您观察到无限循环。