【发布时间】:2018-01-17 00:48:56
【问题描述】:
这与一年多前回答的问题相同:Jenkinsfile get current tag
那里接受的答案对我不起作用,我认为从那时起行为必须在管道中发生变化。
我的仓库有标签(推送到原点!),我添加了 Jenkins 选项来发现标签,但是我无法从管道步骤中获取或引用它们。 它只是显示为空。
在我的 MultiBranch Pipeline 作业中我添加了“发现标签”步骤。
我有一个带有发布标签集的 git repo:
myhost$ git fetch
myhost$ git tag
0.0.42
myhost$ git tag --sort version:refname
0.0.42
在我尝试过的 Jenkinsfile 中:
sh "git tag --sort version:refname | tail -1 > version.tmp"
sh "cat version.tmp"
和:
sh(returnStdout: true, script: "git tag --sort version:refname | tail -1").trim()
他们都一无所有(null)
【问题讨论】:
-
您是否尝试过运行
git fetch --tags以确保 Jenkins 在克隆期间获取它们?我不确定它是否开箱即用。发现(创造新工作)并不一定意味着它们在克隆时可用。 -
我刚刚确认这是正确的答案 - 如果您回答问题,我会将其标记为已接受的答案。
-
@StephenKing:我尝试在第一步中添加
sh 'git fetch --tags'(就在checkout scm之后。但我遇到了以下问题:+ git fetch --tags. fatal: could not read Username for 'https://bitbucket.org': No such device or address'.我在这里缺少什么?
标签: git jenkins jenkins-pipeline