emm*_*dee 4 git jenkins jenkins-pipeline
这与一年多前回答的问题相同:Jenkinsfile get current tag
那里接受的答案对我不起作用,我认为从那时起,管道内的行为一定已经发生了变化。
我的存储库有标签(推送到原点!),并且我添加了 Jenkins 选项来发现标签,但是我无法从管道步骤中获取或引用它们。它只是显示为空。
我有一个带有发布标签集的 git 存储库:
myhost$ git fetch
myhost$ git tag
0.0.42
myhost$ git tag --sort version:refname
0.0.42
Run Code Online (Sandbox Code Playgroud)
在 Jenkinsfile 中我尝试过:
sh "git tag --sort version:refname | tail -1 > version.tmp"
sh "cat version.tmp"
Run Code Online (Sandbox Code Playgroud)
和:
sh(returnStdout: true, script: "git tag --sort version:refname | tail -1").trim()
Run Code Online (Sandbox Code Playgroud)
两者都没有返回(null)
您必须确保 Jenkins 使用标签获取您的存储库。您可以在 Jenkins 构建控制台中查看是否是这种情况。必须有一行像git fetch --no-tags ...orgit fetch --tags ...。
我的詹金斯安装似乎有时会在没有明显原因的情况下改变这种行为。为了确保它获取标签,请使用复选框“不获取未标记的标签”将高级克隆行为添加到您的管道作业中。
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |