当前位置: 首页 > 面试题库 >

循环作业阵列以创建它们?

华浩壤
2023-03-14
问题内容

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

也许我可以构建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()
  }
}


 类似资料:
  • 我试图研究我的数据中有零值的概率,我开发了一个代码,当一列数据为零时输出另一列数据的值,这正是我所需要的。但是,对于577BY29数据流中的每一列和其他28列都要这样做是很困难的,所以我决定创建一个for循环,在我有以下内容的地方为我这样做: 您可以看到,当输出数据帧有n=29列时,代码循环正确,但对于上面指定的条件,代码循环不正确。 请帮忙,谢谢!

  • 示例:我需要处理数百万条记录,我想并行处理它们以加快处理速度。为此,我想在Executor服务中使用线程池。每项任务最多需要几秒钟。为了避免在一个线程池中为每条记录创建数百万个线程,这会导致内存问题,我决定分批处理记录。 我想为每个批使用一个新的线程池。我让Executor Service等待批处理任务完成,然后关闭Executor Service并创建一个新的Executor Service来处

  • 我有一个由3个作业组成的Ctrl-M工作流,应该每15分钟运行一次,如下所示: 我发现,如果您不将Job2和Job3也定义为循环,那么它们在第一次执行后就再也不会被踢了。你知道为什么吗?我为解决这个问题所做的是将Job2和Job3也设置为每15分钟循环一次,但这使得我的“工作流” Job2-->Job3>被搞乱了,因为Job2的15分钟条件是在我的父Job1完成之前计算的,因此如果Job1“cyc

  • 我是编程新手,我有一个任务要求从一维数组创建二维数组。我想到了这一点(没有任何外部来源的帮助,因为这会剥夺学习经验)。它适用于我们教授的测试输入,我只是想知道这是一个丑陋/低效的解决方案。 测试输入:twoDArray([1,2,3,4,5],3)输出将是:[[1,2,3],[4,5]]

  • 问题内容: 为什么在Java中引入此循环?它是Java创建的吗?它的目的是什么(提高内存/ cpu的使用效率)? 问题答案: 为什么在Java中引入此循环? 只是为了简化遍历通用集合和数组。代替 你可以做 这使得代码更具可读性和更好的可维护性。 它是Java创作吗? 不,它早于Java就以其他语言存在。Java实施起来相对较晚。 目的是什么? 请参阅第一个答案。 要了解更多信息,请查阅有关该主题的

  • 问题内容: 我正在尝试在循环内创建函数: 问题在于所有功能最终都相同。这三个函数都没有返回0、1和2,而是返回2: 为什么会发生这种情况,我应该怎么做才能获得分别输出0、1和2的3个不同函数? 问题答案: 你在后期绑定方面遇到了问题-每个函数都i尽可能晚地查找(因此,在循环结束后调用时,i将设置为2)。 可以通过强制早期绑定轻松修复:更改为以下形式: 缺省值(右手i输入i=i是参数名的默认值,i左