Jenkins Job DSL 触发器已弃用

2024-02-26

我正在使用 Job DSL Jenkins 插件,并且遇到了有关触发器的问题。它已被弃用,当我更新代码时,仍然显示弃用警告。

这是之前的代码:

protected def job
 void nightly(String schedule='H 0 * * *') {
        job.triggers {
            cron(schedule)
        }
    }

然后更新根据:https://github.com/jenkinsci/job-dsl-plugin/wiki/Migration https://github.com/jenkinsci/job-dsl-plugin/wiki/Migration

void nightly(String schedule='H 0 * * *') {
        properties {
            pipelineTriggers {
                job.triggers {
                    cron(schedule)
                }
            }
        }
    }

仍然有警告: 警告:(JobBuilder.groovy, line 100) triggers is deprecated

我究竟做错了什么?是properties关键字错误还是应该是job.properties?

提前致谢


job基本上代表project作业 XML 配置文件的块及其方法将转换为嵌套的 XML 元素。

您的初始代码

void nightly(String schedule = 'H 0 * * *') {
  job.triggers {
    cron(schedule)
  }
}

渲染这部分:

<triggers>
    <hudson.triggers.TimerTrigger>
        <spec>H 4 * * *</spec>
    </hudson.triggers.TimerTrigger>
</triggers>

您更新的代码实际上做了同样的事情,因为您正在调用triggers的方法job和更新之前一模一样。另一个问题是cron方法规范pipelineTriggers不同,所以正确的代码是:

void nightly(String schedule = 'H 0 * * *') {
  job.properties {
    pipelineTriggers {
      triggers {
        cron {
          spec(schedule)
        }
      }
    }
  }
}

您可以在以下位置查看可用的 Jenkins DSL 方法:https://your.jenkins.domain/plugin/job-dsl/api-viewer/index.html https://your.jenkins.domain/plugin/job-dsl/api-viewer/index.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins Job DSL 触发器已弃用 的相关文章

随机推荐