0

Jenkins HockeyApp 插件可以从 git 更改中自动创建格式合理的发行说明。但是,如果 HockeyApp 上传是在推广阶段使用推广插件完成的,这似乎不起作用。在这种情况下,更改日志为空。

这可以通过选择“从文件加载发行说明”并在项目中提供 changelog.xml 的路径(../builds/${PROMOTED_NUMBER}/changelog.xml)来部分解决,但输出并不像现在那样干净使用“使用更改日志”选项,还包含文件名和提交 ID。

当传输发生在提升阶段并且可能在 Jenkins 从机上时,为 HockeyApp 传输自动创建格式良好的日志的最佳方法是什么?

4

1 回答 1

0

回答我自己:可以使用这个简单的脚本将更改日志从 jenkins master 获取到 jenkins slave,并将获得的 changelog.xml 解析为更多用户可读:

#!/bin/bash

PROJECT_NAME="$1"
BUILD_NUMBER="$2"
BUILD_DATE="$3"
CHANGELOG=changelog.xml

echo "project=${PROJECT_NAME} build=${BUILD_NUMBER}"

PROJECT_NAME=`basename ${PROJECT_NAME}`

curl ${PROMOTED_URL}api/xml?xpath=/*/changeSet/item/comment\&wrapper=changelog > ${CHANGELOG}

PARSEDLOG=`sed -e 's/<\/[^>]*>/€€/g' ${CHANGELOG} | sed -e 's/<[^>]*>/- /g' | tr €€, '\r' | sed '/^ \s*$/d'`

echo "${PROJECT_NAME} ${BUILD_NUMBER} ${BUILD_DATE} change log:
=====================================================================
${PARSEDLOG}" > changelog.txt

我知道有比我使用过的 sed 和 tr 命令序列更好、更可靠的方法来清理 xml,但目前这种方法有效。

于 2015-10-30T08:10:06.453 回答