尽管如此,多分支管道插件并没有内置标签。需要使用basic-branch-build-strategies-plugin来启用标签发现和构建。
我的问题直接与:Is there a way to automatically build tags using the Multibranch Pipeline Jenkins plugin?
此插件在UI中效果很好,但似乎无法使用Jenkins job dsl轻松配置。有没有人有使用dsl(或dsl configure->)设置分支策略的示例,以便可以发现和构建标签?
通过ui更改设置后,已经检查了config.xml文件之间的差异,看来我需要能够添加此特征:
<org.jenkinsci.plugins.github__branch__source.TagDiscoveryTrait />
以及本节中的构建策略:
<buildStrategies
<jenkins.branch.buildstrategies.basic.TagBuildStrategyImpl
plugin="basic-branch-build-strategies@1.1.1">
<atLeastMillis>-1</atLeastMillis>
<atMostMillis>172800000</atMostMillis>
</jenkins.branch.buildstrategies.basic.TagBuildStrategyImpl>
</buildStrategies>
答案 0 :(得分:1)
类似
multibranchPipelineJob('pipline') {
...
branchSources {
branchSource {
source {
github {
...
traits {
...
gitTagDiscovery()
}
}
buildStrategies {
buildTags {
atLeastDays '-1'
atMostDays '20'
}
}
}
}
}
}
是我一直在努力的。插件中没有记录该文件,但这并不能阻止job-dsl插件为其动态生成API调用。
您可以转到{your_jenkins_url}/plugin/job-dsl/api-viewer/index.html
来查看特定Jenkins安装的API。
有时,由于插件缺少对job-dsl的支持,因此事情不会在那里出现。
在那种情况下,您仍然可以使用Configure Block生成xml。
但是,这非常笨拙。
编辑:至少如果我按照动态生成的API的建议使用gitHubTagDiscovery()
,Jenkins将崩溃。相反,必须使用configure块来获取github的所有发现方法。
configure {
def traits = it / sources / data / 'jenkins.branch.BranchSource' / source / traits
traits << 'org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait' {
strategyId(1)
}
traits << 'org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait' {
strategyId(1)
}
traits << 'org.jenkinsci.plugins.github__branch__source.TagDiscoveryTrait'()
}