我使用Jenkins DSL插件为git项目的所有分支自动创建构建作业。 DSL插件由Web挂钩触发,以便在创建新分支后立即运行。每个分支生成的构建作业也配置为由Web挂钩触发。
当前设置的问题是,构建只会在第二次提交后执行。第一次提交将触发Jenkins DSL插件创建相应的Jenkins Job,然后第二次提交将触发新创建的作业。
有没有办法,在DSL插件创建Jenkins工作后立即开始工作?我目前唯一可以提出的是添加额外的构建计划,但我更喜欢仅使用Web钩子来防止不必要的轮询。
答案 0 :(得分:17)
您可以使用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')
}