如何为 Job DSL 创建的多分支作业设置发现分支策略
How to set the discover branches strategy for multibranch job created by Job DSL
我正在通过 Groovy 创建多分支管道作业。
multibranchPipelineJob('example') {
branchSources {
github {
id('23232323')
scanCredentialsId('github-ci')
repoOwner('OwnerName')
repository('job-dsl-plugin')
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(10)
}
}
}
这很好用,但是将 Discover Branches Strategy 设置为 All branches
有没有办法将 排除也作为 PR 归档的分支设置为默认值?
branchSources/github
是静态的 API,您不应该使用它。 Job DSL 插件的作者停止支持它。更安全的选择是使用动态 API。您可以使用 URL:
检查 Jenkins 上可用的选项
https://<your-jenkins>/plugin/job-dsl/api-viewer/index.html
这是你应该使用的:
multibranchPipelineJob('example') {
branchSources {
source {
github {
id('23232323')
apiUri('apiUrl, example: https://github.com/api/v3')
credentialsId('github-ci')
repoOwner('OwnerName')
repository('job-dsl-plugin')
repositoryUrl('repositoryUrl')
configuredByUrl(false)
traits {
gitHubBranchDiscovery {
strategyId(1)
}
}
}
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(10)
}
}
}
策略编号:
- 1 - 发现所有分支,作为拉取请求源的分支除外
- 2 - 仅发现作为拉取请求源的分支
- 3 - 发现所有分支
我正在通过 Groovy 创建多分支管道作业。
multibranchPipelineJob('example') {
branchSources {
github {
id('23232323')
scanCredentialsId('github-ci')
repoOwner('OwnerName')
repository('job-dsl-plugin')
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(10)
}
}
}
这很好用,但是将 Discover Branches Strategy 设置为 All branches
有没有办法将 排除也作为 PR 归档的分支设置为默认值?
branchSources/github
是静态的 API,您不应该使用它。 Job DSL 插件的作者停止支持它。更安全的选择是使用动态 API。您可以使用 URL:
https://<your-jenkins>/plugin/job-dsl/api-viewer/index.html
这是你应该使用的:
multibranchPipelineJob('example') {
branchSources {
source {
github {
id('23232323')
apiUri('apiUrl, example: https://github.com/api/v3')
credentialsId('github-ci')
repoOwner('OwnerName')
repository('job-dsl-plugin')
repositoryUrl('repositoryUrl')
configuredByUrl(false)
traits {
gitHubBranchDiscovery {
strategyId(1)
}
}
}
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(10)
}
}
}
策略编号:
- 1 - 发现所有分支,作为拉取请求源的分支除外
- 2 - 仅发现作为拉取请求源的分支
- 3 - 发现所有分支