我想创建一个输入步骤,提示用户选择git标签。为此,我想用git tag
返回的值填充一个下拉框。
这是我当前的管道:
pipeline {
agent any
stages {
stage('My Stage') {
input {
message "Select a git tag"
parameters {
choice(name: "git_tag", choices: TAGS_HERE, description: "Git tag")
}
}
steps {
echo "The selected tag is: ${git_tag}"
}
}
}
}
我希望TAGS_HERE是包含git tags
命令给定输出的变量或方法。
到目前为止,我已经尝试过:
/
中运行我已经在广泛地寻找解决方案,但是我发现的所有示例都可以通过专门使用脚本管道步骤或使用不依赖于工作空间的命令来避免这两个陷阱。
答案 0 :(得分:1)
通过改善@hakamairi的答案,您可以执行以下操作:
pipeline {
agent any
stages {
stage('My Stage') {
steps {
script {
def GIT_TAGS = sh (script: 'git tag -l', returnStdout:true).trim()
inputResult = input(
message: "Select a git tag",
parameters: [choice(name: "git_tag", choices: "${GIT_TAGS}", description: "Git tag")]
)
}
}
}
stage('My other Stage'){
steps{
echo "The selected tag is: ${inputResult}"
}
}
}
}
答案 1 :(得分:0)
也许您不在节点中(以旧的管道脚本方式),可以尝试一下。可能不需要script
。
pipeline {
agent any
stages {
stage('My Stage') {
steps {
def inputResult = input {
message "Select a git tag"
parameters {
choice(name: "git_tag", choices: getTags(), description: "Git tag")
}
}
echo "The selected tag is: ${inputResult.git_tag}"
}
}
}
}
getTags应该返回以换行符分隔的选项。