我正在使用位于我的git存储库中的Jenkins文件。 我已经使用scm中指向我的jenkinsfile的管道脚本配置了新作业。我试图在我的Jenkins文件管道脚本中使用git模块,以便在没有配置预静态变量的情况下从我的git repo中提取数据,并且只使用已经存在的scm的管道脚本下的存储库URL的变量在我的工作中配置。 有一种方法可以以某种方式获得变量存储库URL 来自此插件,而不使用我的Jenkins管道脚本中的参数。
我已经尝试过环境变量 GIT_URL 以及其他与here的git相关的内容,但这并没有用。
答案 0 :(得分:6)
如果您使用git,可以在.attr("xlink:href", function(d){
return d.img;
)};
变量中找到有关scm的所有信息(GitSCM的实例)。
您可以通过这种方式获取存储库URL
scm
但是如果您只想检查该存储库,则只需调用def repositoryUrl = scm.userRemoteConfigs[0].url
而无需指定其他任何内容。见checkout step
答案 1 :(得分:2)
从这个post我找到了一种方法,你可以使用 checkout scm 来获取这样的git repo url:
checkout scm
def url = sh(returnStdout: true, script: 'git config remote.origin.url').trim()
但 checkout scm 会提取代码,我想避免这样做。
所以我找到了另一种方式(不是漂亮的方式):
node('master'){
try{
GIT_REPO_URL = null
command = "grep -oP '(?<=url>)[^<]+' /var/lib/jenkins/jobs/${JOB_NAME}/config.xml"
GIT_REPO_URL = sh(returnStdout: true, script: command).trim();
echo "Detected Git Repo URL: ${GIT_REPO_URL}"
}
catch(err){
throw err
error "Colud not find any Git repository for the job ${JOB_NAME}"
}
}
这对我有用。
答案 2 :(得分:0)
在使用git时,可能不是直接针对您的特定情况的解决方案。
但是对于仍然使用SubversionSCM
使用SVN的用户,可以使用
def repositoryUrl = scm.locations[0].remote
答案 3 :(得分:0)