12

我正在使用 Jenkins DSL 插件为 git 项目的所有分支自动创建构建作业。DSL 插件由 web 挂钩触发,以便在创建新分支后立即运行。为每个分支生成的构建作业也被配置为由 web 挂钩触发。

当前设置的问题是,构建只会在第二次提交后执行。第一次提交将触发 Jenkins DSL 插件以创建相应的 Jenkins 作业,然后第二次提交将触发新创建的作业。

有什么方法可以在 DSL 插件创建后立即启动 Jenkins 作业?我目前唯一能想到的就是添加一个额外的构建调度,但我宁愿只使用网络挂钩来防止不必要的轮询。

4

1 回答 1

20

您可以使用queueDSL 命令来安排构建,请参阅https://github.com/jenkinsci/job-dsl-plugin/wiki/Job-DSL-Commands#queue

要仅在作业是新作业时排队,您需要使用 Jenkins API 来测试作业是否已经存在。

if (!jenkins.model.Jenkins.instance.getItemByFullName('my-job')) {
    queue('my-job')
}
于 2015-08-28T11:08:55.523 回答