首页 > 解决方案 > 从 Jenkins 的提交消息中提取用户故事

问题描述

我正在使用 ext-email 扩展来提取作为提交消息添加到邮件正文中的用户故事。

这是控制台输出:

提交消息:“US285568”

我使用了ext-email插件的Build Log Excerpt方法如下:

故事:${BUILD_LOG_EXCEPT, start="提交消息:\ \"", end="\'"}

但是,这不匹配任何东西,我无法理解它为什么会失败。

标签: regexjenkinsrally

解决方案


我找不到此插件的正确文档。

我通过在当前作业(其中包含控制台输出中的提交消息)结束时触发辅助作业来使用变通解决方案。

我在辅助作业中执行以下 shell 代码:

result=$(curl -GET {JENKINS_IP}/jenkins/job/{UPSTREAM_JOB_NAME}/consoleFull --user "user:pass")

comm=$(grep "Commit message:" <<< "$result")


if grep -E "US[0-9]+" <<< "$comm"
then
    final=$(grep -o "US[0-9]*" <<< "$comm")
else
    final="<font color=\"red\">User Story not found</font>"
fi

echo FINAL=$final > env.properties

为了访问 FINAL 变量(包含用户故事的值)作为环境变量,我使用了EnvInject 插件

要在作业中访问 shell 代码之外的 FINAL 变量,请在 shell 代码后添加“注入环境变量”构建步骤,并在“属性文件路径”中输入“env.properties”。


推荐阅读