使用groovy脚本从多个管道作业中获取git存储库

时间:2018-05-09 19:20:36

标签: jenkins jenkins-pipeline jenkins-groovy

我有200-300个multibranchPipelineJob的工作,我想用DSL创建所有这些工作。

我有这个脚本来获取作业名称

    for(job in      Hudson.instance.getAllItems(org.jenkinsci.plugins.workflow.job.WorkflowJob)
     ) { 
      println job.fullName 
    }

它给了我工作名称,但我无法弄清楚如何从中获取git存储库。 任何想法?

1 个答案:

答案 0 :(得分:1)

在Multibranch管道项目中,只有顶级作业包含有关存储库的信息。因此,您应该迭代WorkflowMultiBranchProject而不是WorkflowJob

这样您就可以获得存储库网址和List RefSpec个。

for(job in Hudson.instance.getAllItems(org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject)) { 
      def repositoryUrl = job.SCMSources[0].remote
      def refSpecs = job.SCMSources[0].refSpecs
}

请注意,这仅适用于GIT存储库。对于SVN,它会略有不同。

相关问题