通过种子工作创建后立即启动詹金斯工作

Start jenkins job immediately after creation by seed job

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

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

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

您可以使用 queue DSL 命令来安排构建,请参阅 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')
}