You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins Pipeline中用Jira-steps插件获取指定版本ID

在Jenkins Pipeline中通过Jira版本名称获取ID(基于Jira-steps插件)

直接上可运行的Pipeline代码片段,核心是用Groovy的集合方法从jiraGetProjectVersions返回的列表中过滤目标版本:

pipeline {
    agent any
    stages {
        stage('Get Jira Version ID') {
            steps {
                script {
                    // 1. 获取目标项目的所有版本列表
                    def projectVersions = jiraGetProjectVersions projectKey: "YOUR_PROJECT_KEY"
                    
                    // 2. 定义要查找的版本名称
                    def targetVersionName = "v1.0.0"
                    
                    // 3. 从列表中匹配版本名称,提取ID
                    def targetVersion = projectVersions.data.find { version -> 
                        version.name == targetVersionName 
                        // 如果需要忽略大小写,改成:version.name.equalsIgnoreCase(targetVersionName)
                    }
                    
                    // 4. 处理结果:找到则输出ID,没找到则抛出异常或提示
                    if (targetVersion) {
                        echo "找到目标版本ID:${targetVersion.id}"
                        // 后续可以把ID存到变量里供其他Jira步骤使用,比如jiraUpdateVersion
                        env.JIRA_VERSION_ID = targetVersion.id
                    } else {
                        error "未找到名称为${targetVersionName}的Jira版本"
                    }
                }
            }
        }
    }
}

关键细节说明:

  • jiraGetProjectVersions返回的projectVersions.data是一个Groovy列表,每个元素是Jira版本对象,包含name(版本名称)、id(版本ID)、releaseDate等属性。
  • 使用find方法比手动遍历更简洁,它会返回第一个匹配条件的元素;如果需要匹配多个版本,可以用findAll。
  • 若版本名称可能存在大小写差异,把匹配条件改成version.name.equalsIgnoreCase(targetVersionName)即可。
  • 一定要处理版本不存在的情况,避免后续步骤因为null值报错。

如果是脚本式Pipeline,直接去掉pipeline和agent、stages的包裹,直接写核心逻辑即可。

内容的提问来源于stack exchange,提问作者Alf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:30:54