我是詹金斯的新手,我正在尝试解决一些问题。
有没有办法通过 Groovy 添加分支源行为。这是使用 Jenkins 分析 SonarQube 中的 GitHub 项目。
I'm creating a multi-branch pipeline but can't seem to figure out how to add the following behaviours.
在 UI 中创建作业时,这些行为默认出现,但通过 Groovy 创建作业时不会出现。
我已将其定义为我的管道。知道如何添加这些其他参数吗?
multibranchPipelineJob('Foo') {
displayName('Foo')
description('Jenkins')
branchSources {
branchSource {
source {
github {
id('15')
repoOwner('12345')
repository('foo')
repositoryUrl('https://example.com')
configuredByUrl(true)
credentialsId('foo')
traits {
gitBranchDiscovery()
}
}
}
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(10)
}
}
}
我尝试添加以下参数,但它会引发错误。
import jenkins.plugins.git.traits.*
def traits = []
traits.add(new TagDiscoveryTrait())
traits.add(new LocalBranchTrait())
gitSCMSource.setTraits(traits)
有没有办法通过 Groovy 创建作业,但使用在 UI 中创建作业时出现的默认设置?
您可以使用以下 URL 检查 Jenkins 上的所有可用选项:
https://<your-jenkins>/plugin/job-dsl/api-viewer/index.html
分支发现模式
multibranchPipelineJob('Foo') {
branchSources {
branchSource {
source {
github {
traits {
gitHubBranchDiscovery {
strategyId(1)
// strategyId(2)
// strategyId(3)
}
}
}
}
}
}
}
策略 ID:
- 1 - 发现所有分支,除了拉取请求源的分支之外
- 2 - 仅发现拉取请求源的分支
- 3 - 发现所有分支
拉取请求发现模式
multibranchPipelineJob('Foo') {
branchSources {
branchSource {
source {
github {
traits {
gitHubPullRequestDiscovery {
strategyId(1)
// strategyId(2)
// strategyId(3)
}
}
}
}
}
}
}
策略 ID:
- 1 - 发现每个拉取请求一次,发现的修订版本对应于与目标分支的当前修订版本合并的结果
- 2 - 发现每个拉取请求一次,发现的修订版与拉取请求头修订版相对应,无需合并
- 3 - 发现当前的拉取请求修订以及与当前目标分支修订合并的拉取请求
Fork Pull 请求发现模式
由于 Jenkins 中的一个错误(JENKINS-60874 https://issues.jenkins.io/browse/JENKINS-60874),你必须使用configure
block:
multibranchPipelineJob('Foo') {
configure {
def traits = it / 'sources' / 'data' / 'jenkins.branch.BranchSource' / 'source' / 'traits'
traits << 'org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait' {
strategyId(1)
// strategyId(2)
// strategyId(3)
trust(class: 'org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission')
// trust(class: 'org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustNobody')
// trust(class: 'org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors')
// trust(class: 'org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustEveryone')
}
}
}
策略 ID:
- 1 - 发现每个拉取请求一次,发现的修订版本对应于与目标分支的当前修订版本合并的结果
- 2 - 发现每个拉取请求一次,发现的修订版与拉取请求头修订版相对应,无需合并
- 3 - 发现当前的拉取请求修订以及与当前目标分支修订合并的拉取请求
信托类别:
- TrustPermission - 信任那些对存储库具有写权限的人
- TrustNobody - 不相信任何人
- TrustContributors - 信任存储库的贡献者
- TrustEveryone——信任每个人
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)