在詹金斯DSL执行cron作业

问题描述:

我想创造出运行一些烟雾测试,每10分钟一个cron作业,我seedjob看起来是这样的:在詹金斯DSL执行cron作业

multiBranchJobs.each { currentJob -> 
    multibranchPipelineJob(currentJob.name) { 
     branchSources { 
      git { 
       remote(currentJob.projectGitUrl) 
       credentialsId(currentJob.credentials) 
       includes(currentJob.includes) 
      } 
     } 
     orphanedItemStrategy { 
      discardOldItems { 
       numToKeep(20) 
      } 
     } 
     triggers { 
      cron "H/5 * * * *" 
      periodic 60 
     } 
    } 
} 

与当前方法的问题是,它会得到只有在检测到SCM中的变化时才执行,而烟雾测试则不是这种情况。我需要每5分钟运行一次,而不管源代码控制中的提交。任何线索?

我并不完全知道如何解决你的问题,但我认为你所拥有的cron触发器并没有做你认为的事情。我认为这会在多分支索引工作本身上设置这个触发器。在甚至不是一个选项的UI中。显然它不会抛出错误,但我不得不怀疑它是否实际设置了触发器。

从多分枝作业创建的作业必须有Jenkinsfile,对吗?您可以在这些Jenkins文件中设置触发器。

我还没有使用代码构建作业,因此在查看我的答案时请考虑这一点。但它对我来说意味着你在错误的地方设置触发器。

+0

是的,触发器应该在Jenkinsfile中定义,请参阅https://jenkins.io/doc/book/pipeline/syntax/#triggers – daspilker

+0

将创建的作业更改为pipelineJob做了窍门,因为multibranchPipelineJob触发SCM扫描检查是否有新的提交。 –