jenkins - 使用输入列出所有标签(Jenkinsfile)
问题描述
我正在尝试列出输入选择中的所有标签(GitLab),但我不知道该怎么做。
我想要做的是能够选择标签并在此基础上执行部署到不同的环境。
谢谢你。
解决方案
我提出了这样一个使用 dsl 在声明式管道中工作的解决方案:
- 下载 repo 的阶段
- 基于 repo 解析标签
- 具有选择参数的阶段
代码:
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}'" } } } }
推荐阅读
- node.js - 如何在另一个异步中调用异步
- php - 从 Wordpress 侧边栏(后端)隐藏特定用户角色的 GenerateBlocks Pro 链接
- date - 在 Windows 7 上为 Lingala 使用 GetDateFormatEx 时出现问题
- python - Django Rest Framework 将对象附加到多对多字段而不删除前一个
- react-native - 反应本机应用程序侧面菜单中的注销功能
- flutter - 在页面浏览中向下滚动时如何隐藏底部导航?
- javascript - 访问JS中节点父级的父级是否合适
- docker - 构建图像时没有互联网连接
- javascript - 有没有办法在谷歌可视化表的单个单元格中添加多个用新行分隔的值?
- node.js - 使用 GraphicsMagick (GM) 向文本添加渐变