循环作业阵列以创建它们? [英] loop over array of jobs to create them?

查看:162
本文介绍了循环作业阵列以创建它们?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将dsl作业配置为删除未引用的作业,并且我想保留该作业:

I have the dsl job configured to delete unreferenced jobs and i want to keep that:

我正在尝试这样做:

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时将其删除.如何遍历列表以创建多个作业?

Jenkins creates job1 but then deletes it when it creates job2. How do I loop over a list to create multiple jobs?

也许我可以构建multibranchPipelineJob objs和listView.jobs的映射/关闭,然后以某种方式将其传递给dsl?

Perhaps I can build a map/closure of multibranchPipelineJob objs and listView.jobs and pass that to the dsl somehow?

推荐答案

我很愚蠢,实际上实际上是在创建作业本身,只是列表视图代替了它们.这是有道理的,因为我为每次迭代都重新创建了相同的列表视图.

Im dumb the jobs themselves were actually getting created fine it was just the listview that was replacing them. Makes sense because I was recreating the same listview for each iteration.

https://gist.github.com/kyounger/83134869ea523b3661f0

我只需要将其移出循环即可.

I just had to move that out of the loop:

listView('mylist') {
  jobs {
    jobsarry.each { job ->
      name(job)
    }
  }
  columns{
    status()
    weather()
    name()
    lastSuccess()
    lastFailure()
    lastDuration()
    buildButton()
  }
}

这篇关于循环作业阵列以创建它们?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆