2017-05-16 6 views
4

Ich habe einen Jenkins-Job, der über ein deklaratives Pipeline-Skript konfiguriert wird.Wie Kommentar zu Jira Problem von Jenkins Pipeline hinzufügen?

Ich möchte einen Kommentar zum verwandten Jira-Problem hinzufügen, wenn ein Build erfolgreich ist/fehlschlägt.

Die Plugins, die verfügbar sind, geben keine sehr gute Dokumentation in Bezug auf ihre Verwendung mit einer Pipeline. Ich habe versucht, die "Jira Plugin" zu verwenden, wie es in dieser Antwort erklärt:

Updating Jira tickets from Jenkins workflow (jenkinsfile)

step([$class: 'hudson.plugins.jira.JiraIssueUpdater', 
    issueSelector: [$class: 'hudson.plugins.jira.selector.DefaultIssueSelector'], 
    scm: [$class: 'GitSCM', branches: [[name: '*/develop']], 
     userRemoteConfigs: [[url: 'https://github.com/something.git']]]]) 

Aber ich bekomme diese Fehlermeldung:

java.lang.IllegalArgumentException: Unsupported run type org.jenkinsci.plugins.workflow.job.WorkflowRun 
at hudson.plugins.jira.JiraIssueUpdater.perform(JiraIssueUpdater.java:69) 
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:78) 
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:65) 
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:49) 
at hudson.security.ACL.impersonate(ACL.java:260) 
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:46) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

Hat jemand erfolgreich dies über getan die Pipeline?

Antwort

0

Mit Jenkins Jira plugin:

stage('jira') { 
    steps { 
     script { 
      // Get the list of solved issues and loop over it 
      jiraIssueSelector(issueSelector: [$class: 'DefaultIssueSelector']) 
      .each { 
       // jiraComment is provided by Jira-plugin 
       id -> jiraComment(issueKey: id, 
        body: "This issue was mentioned in [${env.BUILD_NUMBER}|${currentBuild.absoluteUrl}]" 
       ) 
      } 
     } 
    } 
} 

Einige Anmerkungen:

  • ich denke, es möglich sein sollte, diese außerhalb eines Skripts zu tun {}, die sauberer sein würde.
  • Ich fand these docs um sehr hilfreich zu sein.