簡體   English   中英

Jenkins MultiBranch-從管道文件(Jenkinsfile)參考git repo的標簽

[英]Jenkins MultiBranch - Reference git repo's tag from pipeline file (Jenkinsfile)

這與一年多以前的回答相同: Jenkinsfile獲取當前標簽

那里沒有被接受的答案對我沒有用,並且我認為此后必須在管道內更改行為。

我的回購包含標簽(已推送至原點!),並且添加了Jenkins選項以發現標簽,但是無法從管道步驟中獲取或引用它們。 它只是顯示為null。

在我的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()

他們兩個都不返回(空)

你應該試試

 sh "git tag --sort version:refname > tags.tmp"
 sh "tail tags.tmp -n 1 > version.tmp"
 sh "cat version.tmp"

我認為此更改應該有效。

謝謝,

您必須確保Jenkins使用標簽來獲取您的回購。 您可以在Jenkins構建控制台中查看是否存在這種情況。 必須有像git fetch --no-tags ...git fetch --tags ...

我的Jenkins安裝似乎有時會在沒有明顯原因的情況下更改此行為。 為確保其獲取標簽,請選中“ 不要獲取未標記的標簽 ”復選框,將高級克隆行為添加到管道作業中。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM