在詹金斯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文件中设置触发器。
我还没有使用代码构建作业,因此在查看我的答案时请考虑这一点。但它对我来说意味着你在错误的地方设置触发器。
是的,触发器应该在Jenkinsfile中定义,请参阅https://jenkins.io/doc/book/pipeline/syntax/#triggers – daspilker
将创建的作业更改为pipelineJob做了窍门,因为multibranchPipelineJob触发SCM扫描检查是否有新的提交。 –