20

Jenkinsfile のジョブの現在のタグ (または存在しない場合は null ) を取得する方法はありますか? 背景は、このコミットにタグがある場合にのみ、いくつかのアーティファクト (android APK) をビルドしたいということです。私は試した:

env.TAG_NAME

binding.variables.get("TAG_NAME")

どちらも常に null です - これ ( https://issues.jenkins-ci.org/browse/JENKINS-34520 ) がそうでないことを示しているにもかかわらず

4

8 に答える 8

29

他のすべての回答は、HEAD がタグ付けされていない場合でも、いずれの場合も出力を生成します。ただし、問題は現在のタグを返し、そのようなものがない場合は「null」を返すことでした。

git tag --containsHEAD がタグ付けされている場合にのみ、タグ名 name を生成します。

Jenkins Pipelines の場合、次のようになります。

sh(returnStdout: true, script: "git tag --contains").trim()

于 2018-01-30T14:31:11.607 に答える
26

returnStdoutファイルに書き込むのではなく、次のことを検討します。

sh(returnStdout: true, script: "git tag --sort version:refname | tail -1").trim()

于 2016-10-12T00:20:28.897 に答える
2
sh "git tag --sort version:refname | tail -1 > version.tmp"
String tag = readFile 'version.tmp'
于 2016-08-22T23:10:12.023 に答える