首页 文章

如何在Jenkins管道中获取repo名称

提问于
浏览
5

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

1 回答

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

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

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

    从那里你需要做一些字符串操作来得到你想要的 .


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

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

相关问题