jenkins-pipeline - pipelineTriggers 的正确语法
问题描述
我有一个基于 DSL 的种子工作。这是看起来的样子
pipelineJob("job name") {
description('Some explanation')
triggers {
cron('@midnight')
upstream('someJob', 'SUCCESS')
}
parameters {
...
当我运行作业时,它最终变得不稳定并出现错误消息
Warning: (Builds.groovy, line 53) triggers is deprecated
所以现在我重新编写了代码如下
pipelineJob("job name") {
description('Some explanation')
properties {
pipelineTriggers {
triggers {
cron('@midnight')
upstream('someJob', 'SUCCESS')
}
}
parameters {
...
现在我得到了错误
ERROR: (unknown source) No signature of method: javaposse.jobdsl.plugin.structs.DescribableListContext.cron() is applicable for argument types: (java.lang.String) values: [@midnight]
Possible solutions: grep(), print(java.io.PrintWriter), print(java.lang.Object), grep(java.lang.Object), wait(), any()
现在我把它改写为
pipelineJob("job name") {
description('Some explanation')
properties {
pipelineTriggers {
triggers {
cron{
spec('@midnight')
}
upstream('someJob', 'SUCCESS')
}
}
parameters {
...
但是现在这以错误告终
ERROR: (Builds.groovy, line 72) No signature of method: javaposse.jobdsl.plugin.structs.DescribableListContext.upstream() is applicable for argument types: (java.lang.String, java.lang.String) values: [someJob, SUCCESS]
我在这里还错过了什么?
解决方案
使用网址<JENKINS_URL>/plugin/job-dsl/api-viewer/index.html#path/pipelineJob-properties-pipelineTriggers-triggers
我得到了正确的格式
properties {
pipelineTriggers {
triggers {
cron {
spec('@midnight')
}
upstream{
upstreamProjects('someJob')
threshold('SUCCESS')
}
}
}
}