我正在使用Gitlab进行源代码管理,使用jenkins进行CI作业,使用JIRA进行问题跟踪。
一旦我以问题编号(例如“ Project-123编辑的演示文件”)提交到gitlab中,我就有一个jenkins钩子触发构建。我有JENKINS的Jira插件,并通过工作流操作使用Progress JIRA问题。我有一个两部分的问题:
project=PROJ and status="Build Started" and updated >= "-15m"
我最终使用了变通方法。这是我解决每个问题的方法: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插件并在当前构建失败或不稳定的情况下开始构建。这个新版本仅将工作流程退回到“进行中”