我最终使用了变通方法。这是我解决每个问题的方法:1-我编写了一个Shell脚本,该脚本通过请求api进行更改。然后,我编写了一个正则表达式以从提交消息中取出问题密钥。我只提取了第一个问题的参考。我使用jenkins中的envinject插件将问题ID注入为构建属性,以供以后由工作流程操作步骤进行JIRA插件的进度问题使用。这是shell脚本。
xmlfile=$(curl -s "http://*********:8080/jenkins/job/***/${BUILD_NUMBER}/api/xml?wrapper=changes&xpath=//changeSet//comment")
re="PRJ-([0-9])*"
if [[ $xmlfile =~ $re ]];
then issueKey=${BASH_REMATCH[0]}
fi
re2="([0-9])+"
if [[ $issueKey =~ $re2 ]];
then echo ISSUE_ID=${BASH_REMATCH[0]} > env.properties
fi
在jira pugin中,我使用issueKey = PRJ- $ ISSUE_ID作为具有状态的jql。
2-对于这一部分,我使用TriggerParametrizedBuild插件并在当前构建失败或不稳定的情况下开始构建。这个新版本仅将工作流程退回到“进行中”