Updating Jira tickets from Jenkins workflow (jenkinsfile)

流过昼夜 提交于 2019-12-05 01:08:15

问题


How can I update a jira issue from within a Jenkinsfile (jenkins-worflow/pipeline)? Is there a way I could use the Jira Issue Updater plugin as a step in the Jenkinsfile?

I know I could use the Jira RestAPI, but I'm trying to figure out if I can re-use the functionality provided by the jira-updater-issue.

What I'm looking for is a something similar to the example below calling Junit archiver, and atifact archiver, but calling 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'])
    }

回答1:


The Jira Plugin is compatible with Pipeline.

This should work:

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

You can get a full reference in the built-in Pipeline Snippet Generator.




回答2:


Yes, seems like this page answers your question:

https://wiki.jenkins-ci.org/display/JENKINS/Jira+Issue+Updater+Plugin

After you install the plugin, add a build step, or pre/post build step to call this plugin

There you can give it the REST URL to your Jira server, the creds and the JQL to find the issues




回答3:


The JIRA Steps Plugin provides a more declarative way to 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()
  }
}

Since you would like to use the Jenkinsfile to define your pipeline, that should be the preferred way for you to go...



来源:https://stackoverflow.com/questions/35213266/updating-jira-tickets-from-jenkins-workflow-jenkinsfile

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!