我正在使用Jenkins DSL插件自动为git项目的所有分支创建构建作业。DSL插件由Web挂钩触发,以便在创建新分支后立即运行。每个分支生成的生成作业也被配置为由Web挂钩触发。
当前设置的问题是,仅在第二次提交后才执行构建。第一次提交将触发Jenkins DSL插件来创建相应的Jenkins作业,然后第二次提交将触发新创建的作业。
有什么方法可以通过DSL插件创建Jenkins作业后立即开始?我目前唯一能想到的就是添加一个额外的构建计划,但是我只想使用Web挂钩来防止不必要的轮询。
您可以使用queueDSL命令来计划构建,请参阅https://github.com/jenkinsci/job-dsl- plugin/wiki/Job-DSL-Commands#queue。
queue
要仅在作业是新作业时排队,您需要使用Jenkins API来测试作业是否已经存在。
if (!jenkins.model.Jenkins.instance.getItemByFullName('my-job')) { queue('my-job') }