使用输入列出所有标签(Jenkinsfile)

时间:2018-11-06 13:21:48

标签: jenkins jenkins-pipeline

我试图列出输入选择中的所有标签(GitLab),但我不知道该怎么做。

我要做的是能够选择标签并根据标签执行部署到不同环境的操作。

谢谢。

1 个答案:

答案 0 :(得分:1)

我提出了一种使用dsl在声明式管道中工作的解决方案:

  1. 下载回购阶段
  2. 基于回购协议解析标签
  3. 具有选择参数的阶段

代码:

pipeline {
agent  any 
stages {

stage('PollSCM') {
    steps {
checkout([$class: 'GitSCM', branches: [[name: 'master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxx', url: 'repo']]])
script {
        tags = sh(script: "git tag --sort=v:refname | tail -5 ", returnStdout: true).trim()
}
}
}

stage('CHOICE TAG') {
    steps {
    script {
def tag_response = input message: 'blah blah tags',
parameters: [choice(choices: "${tags}",  description: 'blah', name: '')]
env.tag_response = tag_response
}

}
}

stage ('echo choose') {
    steps {
        echo "I choose: '${tag_response}'"
    }
}

}
}