如何在Jenkinsfile (jenkins-worflow/pipeline)内更新jira问题? 有没有办法可以使用Jira Issue Updater plugin作为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'])
}
答案 0 :(得分:8)
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']]]])
您可以在内置的Pipeline Snippet Generator中获得完整的参考。
答案 1 :(得分:0)
是的,好像这个页面回答了你的问题:
https://wiki.jenkins-ci.org/display/JENKINS/Jira+Issue+Updater+Plugin
安装插件后,添加构建步骤或前/后构建步骤以调用此插件
在那里你可以给你的Jira服务器的REST URL,信用卡和JQL来找到问题
答案 2 :(得分:0)
JIRA Steps Plugin为update an existing 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()
}
}
由于您希望使用Jenkins文件来定义管道,这应该是您的首选方式...
答案 3 :(得分:0)
因为这对我来说比应该的要困难得多,所以这里有一个有效的例子。这将使用特定值更新工单的自定义字段:
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/