2

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

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

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

它给了我工作名称,但我不知道如何从中获取 git 存储库。任何想法 ?

4

1 回答 1

1

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

通过这种方式,您可以获得一个存储库 URL 和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,它会略有不同。

于 2018-05-09T22:16:52.007 回答