使用 groovy 脚本从多管道作业中获取 git 存储库
get git repository from multi pipelines jobs with groovy script
我有 200-300 个 multibranchPipelineJob 作业,我想用 DSL 创建它们。
我有这个脚本来获取作业名称
for(job in Hudson.instance.getAllItems(org.jenkinsci.plugins.workflow.job.WorkflowJob)
) {
println job.fullName
}
它给了我作业名称,但我不知道如何从中获取 git 存储库。
有什么想法吗?
在多分支管道项目中,只有顶级作业包含有关存储库的信息。所以你应该遍历 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,它会略有不同。
我有 200-300 个 multibranchPipelineJob 作业,我想用 DSL 创建它们。
我有这个脚本来获取作业名称
for(job in Hudson.instance.getAllItems(org.jenkinsci.plugins.workflow.job.WorkflowJob)
) {
println job.fullName
}
它给了我作业名称,但我不知道如何从中获取 git 存储库。 有什么想法吗?
在多分支管道项目中,只有顶级作业包含有关存储库的信息。所以你应该遍历 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,它会略有不同。