Jenkins多分支管道:如何获取最新的git标签?

我的项目构建依赖于git标签来确定用于工件的版本。我正在尝试创建Jenkins多分支管道。这意味着,我需要以某种方式获得与

相同的输出

git describe --tags

进入我的Jenkins管道。不管我使用各种“高级行为”如何处理,我都会得到一个独立的HEAD和git,说它无话可说。

本文档https://jenkins.io/doc/pipeline/steps/workflow-scm-step/ 提到了$class: GitTagMessageExtension和一个可选的布尔参数useMostRecentTag,根据描述它应该提供我所需要的,但是我在管道摘要生成器中找不到等效的布尔参数,并且在Jenkisfile中何时包括

checkout(
            [$class: 'GitSCM',branches: [[name: '**']],doGenerateSubmoduleConfigurations: false,extensions: [
                [$class: 'CloneOption',depth: 0,noTags: false,reference: '',shallow: false],[$class: 'GitTagMessageExtension',useMostRecentTag:true]
            ],submoduleCfg: [],userRemoteConfigs: [[credentialsId: 'xxx',url: 'xxx']]
            ]
        )

我遇到错误

java.lang.UnsupportedOperationException: no known implementation of class hudson.plugins.git.extensions.GitSCMExtension is named GitTagMessageExtension

编辑:

@ ioannis-barakos指出,缺少GitTagMessageExtension插件。但是,安装后,

的承诺
  

如果您勾选了使用最近使用的标签选项,并且选中了修订版本   out没有关联的git标签,父提交将是   搜索git标签,并且上述规则将适用于   带有git标签的第一次父提交。

不成立。它仅对分离的头部运行git describe --tags <commit-hash>,什么也不输出。

那么,有人知道如何处理吗?我想念什么?

c349534161 回答:Jenkins多分支管道:如何获取最新的git标签?

您可能没有在Jenkins中安装Git Tag Message Plugin

GitTagMessageExtension由该插件提供(如here一样)

确保在Jenkins插件中安装了以下插件。

Git Tag Message Plugin

下面是一个工作示例,该示例在所有分支(起源/ **)中搜索标签。 请记住,应该在持有jenkins帐户用户名/密码的jenkins中配置一个凭据id,并为下载/克隆位置设置一个RelativeTargetDirectory类。

script {
    checkout([
      $class: 'GitSCM',branches: [[name: "origin/**"]],doGenerateSubmoduleConfigurations: false,extensions: [[
      $class: 'RelativeTargetDirectory',relativeTargetDir: "/tmp/jenkins/git"],[$class: 'CloneOption',depth: 0,noTags: false,reference: '',shallow: false],[$class: 'GitTagMessageExtension',useMostRecentTag:true] 
        ],submoduleCfg: [],userRemoteConfigs: [[
             credentialsId: 'ioannis.barakos',url: 'https://git.example.com/git/example'
        ]]
    ])            
}
,

那都是虚假的警报:我只是忘记了git push --tags

尽管有一个与直觉相反的陷阱:勾选“发现标签”还不够,还必须选择“高级克隆行为”并勾选“获取标签”

本文链接:https://www.f2er.com/3167316.html

大家都在问