web-dev-qa-db-ja.com

Jenkinsパイプラインスクリプト内からgitタグを作成する

私のJenkinsパイプラインスクリプト内で、次のようなことをしたいと思います。

sh("git tag ${BUILD_NUMBER}")

ただし、シェルでgitが見つからない場合、これは機能しません。

Jenkinsパイプラインスクリプトからこれを実行できるJenkinsプラグインはありますか?

5
octavian

現在、これに対するプラグインサポートはありませんが、将来サポートされる可能性があります。
https://issues.jenkins-ci.org/browse/JENKINS-28335

このJiraの問題を検討している間、Andrey Makeevの一時的な解決策を見てください。文書化 ここ

5
eyalstoler

これが私のやり方です。ここで、ShellVersionはそれぞれカスタム関数とクラスであり、Shellsh関数のドロップイン置換です:

    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

3
rbellamy

Git-Client plugin を使用して、次のようにすることができます:sh "git tag build_${gitCommit}"

0
Christopher