从Jenkins工作流更新Jira工单(jenkinsfile)

jckbn6z7  于 6个月前  发布在  Jenkins
关注(0)|答案(5)|浏览(73)

如何从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'])
    }

字符串

zzlelutf

zzlelutf1#

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']]]])

字符串
你可以在内置的管道Sniffy生成器中获得完整的参考。

7bsow1i6

7bsow1i62#

由于这对我来说比它应该的要难得多,这里有一个工作示例。这将使用特定值更新票证的自定义字段:

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/

jecbmhm3

jecbmhm33#

JIRA Steps Pluginupdate 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()
  }
}

字符串
既然你想使用Jenkinsfile来定义你的管道,那应该是你的首选方式。

vs91vp4v

vs91vp4v4#

基于amuniz的答案,如果你运行在一个已经完成了 checkout 的管道中,你可以进一步简化它:

step([$class: 'JiraIssueUpdater',
    issueSelector: [$class: 'hudson.plugins.jira.selector.DefaultIssueSelector'],
    scm: scm])

字符串

hkmswyz6

hkmswyz65#

是的,似乎这个页面回答了你的问题:
https://wiki.jenkins-ci.org/display/JENKINS/Jira+Issue+Updater+Plugin
安装插件后,添加一个构建步骤,或前/后构建步骤来调用此插件
在那里,您可以给予Jira服务器的REST URL、creds和JQL来查找问题

相关问题