我试图找出一种方法来获取jenkins作业中的远程git项目名称作为env变量。我想将项目名称用作"本地子目录名称"当詹金斯克隆回购时。有没有办法做到这一点?
可能类似于${GIT_REPO_NAME}
我知道有${GIT_REPO_URL}
并且它包含项目名称,但我需要能够在本地子目录字段中使用它。
如果某人有更好的解决方案,我会全力以赴。
谢谢你!答案 0 :(得分:0)
不确定这是否适用于您的特定用例,但我认为我会提供它以防万一:
默认情况下, Jenkins 会将 git repo克隆到作业的工作区的根目录中。然后,您可以使用 Jenkins 设置的内置$WORKSPACE
来引用任何脚本中的git根目录,并且我发现它非常简单易用。
答案 1 :(得分:0)
这是我用于Github组织构建的内容:
CUDA_VISIBLE_DEVICES
默认为作业名称,因此即使您不使用github组织插件,但确实使用与您的git repo名称匹配的作业名称,您应该全部设置。
答案 2 :(得分:0)
这是一个简单的单行代码:
env.GIT_REPO_NAME = env.GIT_URL.replaceFirst(/^.*\/([^\/]+?).git$/, '$1')
/^.*\/([^\/]+?).git$/
是一个正则表达式,仅创建回购名称的反向引用。