如何在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
相关产品推荐
相关产品推荐

