遍历作业数组来创建它们?
loop over array of jobs to create them?
我将 dsl 作业配置为删除未引用的作业,我想保留它:
我正在尝试这样做:
def bitbucket_team = 'myteam'
def bitbucket_user = 'mycreds'
def repo_arr = ['job1','job2']
repo_arr.collect { repo ->
println "${repo}"
multibranchPipelineJob("${repo}") {
configure {
it / sources / data / 'jenkins.branch.BranchSource' / source(class: 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource') {
credentialsId("${bitbucket_user}")
//checkoutCredentialsId('bitbucket-ssh-key') // can use ssh key here instead of a BB user
repoOwner("${bitbucket_team}")
repository("${repo}")
includes('*')
excludes()
traits {
'com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait'() {
strategyId(1) // Exclude branches that are also filed as PRs
//strategyId(2) // Only branches that are also filed as PRs
//strategyId(3) // All branches
}
'com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait'() {
strategyId(1)
}
'com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait'(){
strategyId(1) // Merging the pull request with the current target branch revision
//strategyId(2) // The current pull request revision
//strategyId(3) // Both the current pull request revision and the pull request merged with the current target branch revision
//Default to trust forks in same account
}
'com.cloudbees.jenkins.plugins.bitbucket.WebhookRegistrationTrait'() {
mode('ITEM')
}
}
}
}
}
// Add jobs to a list view
listView('myview') {
jobs {
name("${repo}")
}
columns{
status()
weather()
name()
lastSuccess()
lastFailure()
lastDuration()
buildButton()
}
}
} // End repo_arr.collect
Jenkins 创建了 job1,但在创建 job2 时将其删除。如何遍历列表以创建多个作业?
也许我可以构建一个 map/closure 的 multibranchPipelineJob objs 和 listView.jobs 并以某种方式将其传递给 dsl?
我愚蠢的是,工作本身实际上已经很好地创建了,只是列表视图正在取代它们。有道理,因为我为每次迭代重新创建了相同的列表视图。
https://gist.github.com/kyounger/83134869ea523b3661f0
我只需要将其移出循环即可:
listView('mylist') {
jobs {
jobsarry.each { job ->
name(job)
}
}
columns{
status()
weather()
name()
lastSuccess()
lastFailure()
lastDuration()
buildButton()
}
}
我将 dsl 作业配置为删除未引用的作业,我想保留它:
我正在尝试这样做:
def bitbucket_team = 'myteam'
def bitbucket_user = 'mycreds'
def repo_arr = ['job1','job2']
repo_arr.collect { repo ->
println "${repo}"
multibranchPipelineJob("${repo}") {
configure {
it / sources / data / 'jenkins.branch.BranchSource' / source(class: 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource') {
credentialsId("${bitbucket_user}")
//checkoutCredentialsId('bitbucket-ssh-key') // can use ssh key here instead of a BB user
repoOwner("${bitbucket_team}")
repository("${repo}")
includes('*')
excludes()
traits {
'com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait'() {
strategyId(1) // Exclude branches that are also filed as PRs
//strategyId(2) // Only branches that are also filed as PRs
//strategyId(3) // All branches
}
'com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait'() {
strategyId(1)
}
'com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait'(){
strategyId(1) // Merging the pull request with the current target branch revision
//strategyId(2) // The current pull request revision
//strategyId(3) // Both the current pull request revision and the pull request merged with the current target branch revision
//Default to trust forks in same account
}
'com.cloudbees.jenkins.plugins.bitbucket.WebhookRegistrationTrait'() {
mode('ITEM')
}
}
}
}
}
// Add jobs to a list view
listView('myview') {
jobs {
name("${repo}")
}
columns{
status()
weather()
name()
lastSuccess()
lastFailure()
lastDuration()
buildButton()
}
}
} // End repo_arr.collect
Jenkins 创建了 job1,但在创建 job2 时将其删除。如何遍历列表以创建多个作业?
也许我可以构建一个 map/closure 的 multibranchPipelineJob objs 和 listView.jobs 并以某种方式将其传递给 dsl?
我愚蠢的是,工作本身实际上已经很好地创建了,只是列表视图正在取代它们。有道理,因为我为每次迭代重新创建了相同的列表视图。
https://gist.github.com/kyounger/83134869ea523b3661f0
我只需要将其移出循环即可:
listView('mylist') {
jobs {
jobsarry.each { job ->
name(job)
}
}
columns{
status()
weather()
name()
lastSuccess()
lastFailure()
lastDuration()
buildButton()
}
}