我的项目构建依赖于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>
,什么也不输出。
那么,有人知道如何处理吗?我想念什么?