回答我自己:可以使用这个简单的脚本将更改日志从 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,但目前这种方法有效。