首页 > 解决方案 > 使用输入列出所有标签(Jenkinsfile)

问题描述

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

我想要做的是能够选择标签并在此基础上执行部署到不同的环境。

谢谢你。

标签: jenkinsjenkins-pipeline

解决方案


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

  1. 下载 repo 的阶段
  2. 基于 repo 解析标签
  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}'"
    }
}

}
}

推荐阅读