在 Jenkins 推广阶段为 HockeyApp 创建发行说明

Release notes creation for HockeyApp in Jenkins promotion phase

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

这可以通过选择 "Load Release Notes from File" 并在项目中提供 changelog.xml 的路径来部分解决 (../builds/${PROMOTED_NUMBER}/changelog.xml) ,但输出不像 "Use Change Log" 选择那样干净,还包含文件名和提交 ID。

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

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

#!/bin/bash

PROJECT_NAME=""
BUILD_NUMBER=""
BUILD_DATE=""
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 的方法,但这目前有效。