【发布时间】:2019-11-05 12:29:28
【问题描述】:
让我们在 Jenkins Job DSL Groovy 中创建一个种子作业,它以这种方式生成管道:
pipeline {
agent any
stages {
stage("DSL") {
steps {
jobDsl scriptText: """pipelineJob("test-pipeline-generated") {
definition {
cps {
script 'pipeline { agent(any); triggers{ cron("H/2 * * * *") }; stages { stage("Some") { steps { echo "Working ..." } } } }'
}
}
}
"""
}
}
}
}
它会生成一个管道作业,必须第一次手动触发以处理 triggers 定义,并且一切正常。但是,当再次触发种子作业时,它覆盖管道作业定义并且触发器再次消失。这意味着种子作业会禁用所有此类作业。
有人知道是否有任何解决方案吗?
我们希望将触发器保留在那里,如果管道中有更改,它将在第一次运行后处理。我们不想在作业 DSL 中指定触发器,因为用户习惯于在管道定义中指定它们。
【问题讨论】:
标签: jenkins-pipeline jenkins-job-dsl