小编典典

如何在詹金斯管道中获取回购名称

jenkins

我正在使用使用Groovy样式脚本编写的Jenkins脚本化管道,并创建了一个Jenkinsfile来描述管道。我需要使用与git repo
name相同的文件夹名称创建工作区,然后在工作区文件夹中签出代码。我的问题是,在执行之前checkout scm,是否有办法知道git
repo名称或git repo url?


阅读 312

收藏
2020-07-25

共1个答案

小编典典

String determineRepoName() {
    return scm.getUserRemoteConfigs()[0].getUrl().tokenize('/')[3].split("\\.")[0]
}

这个相对丑陋的代码是我用来获取repoName的代码。关键是存储库的URL存储在:

scm.getUserRemoteConfigs()[0] .getUrl()

从那里,您需要执行一些字符串操作以获取所需的内容。


更新:

String determineRepoName() {
    return scm.getUserRemoteConfigs()[0].getUrl().tokenize('/').last().split("\\.")[0]
}

这也适用于具有更深层次结构的存储库(https:// domain / project / subproject /
repo
或ssh git repo,它在开始时不包含两个//。

2020-07-25