如何从 Jenkinsfile (jenkins-worflow/pipeline) 中更新 jira 问题? 有没有办法可以使用 Jira Issue Updater 插件 作为 Jenkinsfile 中的一个步骤?
我知道我可以使用 Jira RestAPI,但我正在尝试弄清楚是否可以重复使用 jira-updater-issue 提供的功能。
我正在寻找类似于下面的示例的东西,调用 Junit archiver 和 atifact archiver,但调用 jira updater。
node {
git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
def mvnHome = tool 'M3'
sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
step([$class: 'ArtifactArchiver', artifacts: '**/target/*.jar', fingerprint: true])
step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}
Jira Plugin 与 Pipeline 兼容。
这应该有效:
step([$class: 'hudson.plugins.jira.JiraIssueUpdater',
issueSelector: [$class: 'hudson.plugins.jira.selector.DefaultIssueSelector'],
scm: [$class: 'GitSCM', branches: [[name: '*/master']],
userRemoteConfigs: [[url: 'https://github.com/jglick/simple-maven-project-with-tests.git']]]])
您可以在内置的管道片段生成器中获得完整的参考。
因为这对我来说比应有的要困难得多,所以这里有一个可行的例子。这将使用特定值更新票证的自定义字段:
step([$class: 'IssueFieldUpdateStep',
issueSelector: [$class: 'hudson.plugins.jira.selector.ExplicitIssueSelector', issueKeys: ticket],
fieldId: field,
fieldValue: value
])
代码片段生成器对我不起作用。变量 Ticket、Field 和 Value 都是字符串。从这里开始,您可以在这里寻找选项:https://www.jenkins.io/doc/pipeline/steps/jira/
JIRA Steps 插件提供了一种更具声明性的方式来更新现有的 Jira Ticket:
node {
stage('JIRA') {
# Look at IssueInput class for more information.
def testIssue = [fields: [ // id or key must present for project.
project: [id: '10000'],
summary: 'New JIRA Created from Jenkins.',
description: 'New JIRA Created from Jenkins.',
customfield_1000: 'customValue',
// id or name must present for issuetype.
issuetype: [id: '3']]]
response = jiraEditIssue idOrKey: 'TEST-01', issue: testIssue
echo response.successful.toString()
echo response.data.toString()
}
}
既然您想使用 Jenkinsfile 来定义您的管道,那么这应该是您的首选方式...
基于 amuniz 的答案,如果您在已经完成结账的管道中运行,则可以进一步简化:
step([$class: 'JiraIssueUpdater',
issueSelector: [$class: 'hudson.plugins.jira.selector.DefaultIssueSelector'],
scm: scm])
是的,似乎此页面回答了您的问题:
https://wiki.jenkins-ci.org/display/JENKINS/Jira+Issue+Updater+Plugin
安装插件后,添加构建步骤或构建前/构建后步骤来调用此插件
您可以向其提供 Jira 服务器的 REST URL、凭据和 JQL 以查找问题