Updating Jira tickets from Jenkins workflow (jenki

2020-06-21 07:07发布

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

3条回答
相关推荐>>
2楼-- · 2020-06-21 07:32

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.

查看更多
再贱就再见
3楼-- · 2020-06-21 07:46

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...

查看更多
Ridiculous、
4楼-- · 2020-06-21 07:48

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

查看更多
登录 后发表回答