2017-03-02 211 views
2

在我的詹金斯管道腳本中創建git的標籤,我願做這樣的事情:從詹金斯管道腳本

sh("git tag ${BUILD_NUMBER}") 

但是,如果Git是不是在外殼上發現這個是行不通的。

是否有Jenkins插件可以從Jenkins管道腳本執行此操作?

+0

[https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin] – DevDonkey

+0

在我的「Jenkins管道腳本」中... – octavian

+0

在shell中使用git命令需要在路徑上有GIT。 – JamesD

回答

0

可以使用Git-Client plugin做出這樣的事情: sh "git tag build_${gitCommit}"

+0

我已經安裝了插件,我已經試過了,但是我得到了'git:command not found' – octavian

+2

這不是使用Git-Client插件,只是從主/從節點進行基本的Git命令。 – Pom12

2

有這個目前還沒有插件的支持,但可能在未來:
https://issues.jenkins-ci.org/browse/JENKINS-28335

當你走在這個JIRA問題看看Andrey Makeev的臨時解決方案。也記錄在here

+0

Credit to @Amaksoft – eyalstoler

+1

您應該繼續前進並在此概述解決方案 - 這可以防止鏈接腐爛使您的「正確」答案無法使用。 – rbellamy

+0

非常感謝@rbellamy。由於這不是我的解決方案,我不想爲此付出代價。 – eyalstoler

1

以下是我分別做了,在那裏shellVersion是自定義函數和類,以及shell是爲sh功能的簡易替換:

void gitTag(Version releaseVersion) { 
     sshagent(['devops_deploy_DEV']) { 
     shell 'git tag -d \$(git tag)' 
     shell 'git fetch --tags' 
     echo "New release version ${releaseVersion.normalVersion}" 
     shell "git tag -fa ${releaseVersion.normalVersion} -m 'Release version ${releaseVersion.normalVersion}'" 
     } 
    } 

你可以找到源出於此here