如何在Declarative Pipeline中使用Jira steps解决CPS转换报错
问题解决方案
错误原因
你遇到的报错和Jira Steps是否支持声明式流水线无关,本质是Groovy Map语法书写错误导致Jenkins CPS转换无法识别代码结构:你定义testIssue变量时,fields、project作为Map的键,后面缺失了Groovy Map要求的冒号分隔符,同时还有变量插值的语法问题。
具体修改点
- 补全Map键值对分隔冒号:给
fields、project两个键后面增加冒号,符合Groovykey: value的Map语法规则 - 修正变量插值语法:summary字段用了单引号包裹
$BUILD_NUMBER,单引号不会触发Jenkins变量插值,需要替换为双引号 - 可选优化:给
response变量增加def声明,避免流水线全局变量污染
修正后的完整代码
stages { stage('Create JIRA Ticket'){ steps{ script { def jiraserver = "Demo" def testIssue = [fields: [ project: [id: '10101'], summary: "[Test] Code Scan - $BUILD_NUMBER ", description: 'Automated Pipeline', customfield_1000: 'customValue', issuetype: [id: '10000']]] def response = jiraNewIssue issue: testIssue echo response.successful.toString() echo response.data.toString() jiraAddComment site: 'Demo', idOrKey: 'Test-1', comment: 'Started Unit Tests' } } } }
验证说明
修改后直接运行即可正常调用Jira Steps创建工单,Jira Steps插件原生支持在声明式流水线的script块中调用,无需切换为脚本式流水线。
内容的提问来源于stack exchange,提问作者user630702
相关产品推荐
相关产品推荐

