2016-05-27 5 views
3

Jenkinsfile内のジョブに対して現在のタグを取得する方法(存在しない場合はnull)はありますか?背景には、このコミットにタグが付いている場合にのみ、いくつかの成果物(アンドロイドAPK)を作成したいということです。 私が試した:Jenkinsfile現在のタグを取得

env.TAG_NAME 

binding.variables.get("TAG_NAME") 

を両方が常にnullです - この(https://issues.jenkins-ci.org/browse/JENKINS-34520が)そう

答えて

13

私はreturnStdoutではなく、ファイルへの書き込みを検討したいを示していても、 :

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

+1

うんを、これが正解で、[私は私の答えを与えた時にドキュメント]に存在した(https://での問題.jenkins-ci.org/browse/JENKINS-26133)。 – rbellamy

+3

どのように変数をその結果と等しく設定できますか? –

+1

また、簡単なスクリプトは 'git describe --tags --long --dirty -always'です –

1
sh "git tag --sort version:refname | tail -1 > version.tmp" 
String tag = readFile 'version.tmp' 
0

HEADにタグが付けられていない場合でも、他の回答はいずれの場合も出力を生成します。しかし、問題はの現在のタグを返すことでした。そのようなものがなければ "null"となりました。

git tag --containsは、HEADにタグが付けられている場合にのみタグ名が生成されます。ジェンキンスパイプライン用

が、それは次のようになります。

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

関連する問題