Status: Closed (View Workflow)
Resolution: Not A Defect
Jira Pipeline Steps 1.4.4
At the end of my pipeline, I am iterating the changeSets and the commits therein looking for strings that match Jira tickets, in order to update all Jira's with code present in a build. In theory, this could result in multiple Jiras needing to be updated, so this is done in a loop, potentially making multiple calls to jiraAddComment(..). However, the entire step stops (seems to return success) once the first jiraAddComment is completed.
See attached source and output. Following call to jiraAddComment(..), the subsequent echo should fire indicating that execution flow has continued. The first jiraAddComment appears in the log (and the comment appears in Jira). However, no subsequent echos in the log. No subsequent call to jiraAddComment in the log, and no subsequent comments in Jira.
It is as-if execution stops at the first call to jiraAddComment
I'm inferring that if I use the @NonCPS method to build an array of Jiras to update (ID + Comment), pass the array back to the stage, iterate and call jiraAddComment for each element in the array (from the stage), it would work. I think?
My groovy skills are weak. Built an array in the method, but cannot figure out how to get it back to the stage
OK resolved it - many thanks. Indeed, you have to build an array of Jiras to update in a method, then do the updating back in the stage (inside a script marker).
I added my final code to output-final.txt in the hopes maybe it will benefit the next person.
nrayapati Thank you for the help!
Issue can be closed
yeah, as I mentioned in the above comments, pipeline steps has be outside the @NonCPS function.