我可以在Jenkins中将git标记作为参数签出代码吗?

我可以在Jenkins中将git标记作为参数签出代码吗?,git,jenkins,jenkins-pipeline,Git,Jenkins,Jenkins Pipeline,我想设置Jenkins管道,它会在每次运行作业时询问我git标记。我正在使用声明性管道,但找不到执行此操作的方法。我找到詹金斯插件了!看起来它有我需要的,但不完全是。在这个例子中,有一个带有参数标记的分支定义,但值是master,它是git分支,而不是表示它确实是git标记的字符串。如果我设置了管道类型的作业,我需要拉取repo以能够访问Jenkins文件 另一种方法是以某种方式避免Jenkins(这是Jenkins文件所必需的,因为它在SCM repo中)在分支内远程查找标记,然后拉动分支,或

我想设置Jenkins管道,它会在每次运行作业时询问我git标记。我正在使用声明性管道,但找不到执行此操作的方法。我找到詹金斯插件了!看起来它有我需要的,但不完全是。在这个例子中,有一个带有参数标记的分支定义,但值是master,它是git分支,而不是表示它确实是git标记的字符串。如果我设置了管道类型的作业,我需要拉取repo以能够访问Jenkins文件

另一种方法是以某种方式避免Jenkins(这是Jenkins文件所必需的,因为它在SCM repo中)在分支内远程查找标记,然后拉动分支,或者可能拉动分支,找到标记并进行第二次签出。不确定解决问题的最佳方法是什么,因此欢迎提出建议


谢谢

若要签出标记,请在分支参数的位置提供远程标记名。

我们根据GIT的类似标记进行签出(一次),请特别参阅
分支的部分,因为这可以确定它是如何设置的,如果它是一个标记:

                checkout([
                        $class                           : 'GitSCM',
                        branches                         : [[name: "refs/tags/${yourTagName}"]],
                        userRemoteConfigs                : [[credentialsId: 'user', url: 'url']],
                        doGenerateSubmoduleConfigurations: false
                ])
对于声明式,可以使用参数(选项或字符串)选择或填充要签出的标记。最好使用字符串,因为如果您选择使用选项参数,则必须在更改/添加/删除标记时维护选项

parameters {
  choice choices: ['v51.0.0', 'v50.1.3'], description: 'Pick your Tag to be checked out!', name: 'yourGitTag'
  string defaultValue: '', description: 'FIll in your Tag to be checked out!', name: 'yourGitTag', trim: true
}
如果不提供任何输入,将使用
defaultValue
。 可以在
/directive generator/
下找到在Jenkins实例中生成可用脚本的更多选项