0

Jenkins HockeyApp プラグインは、git の変更から適切に整形されたリリース ノートを自動的に作成できます。ただし、プロモーション プラグインを使用してプロモーション フェーズで HockeyApp のアップロードが行われた場合、これは機能しないようです。その場合、変更ログは空です。

これは、[ファイルからリリース ノートを読み込む] を選択し、プロジェクト (../builds/${PROMOTED_NUMBER}/changelog.xml) の changelog.xml へのパスを指定することで部分的に解決できますが、出力はそれほどきれいではありません。 「Use Change Log」を選択すると、ファイル名とコミット ID も含まれます。

転送がプロモーション フェーズで、おそらく Jenkins スレーブ マシンで行われる場合、HockeyApp 転送用に適切にフォーマットされたログを自動的に作成する最良の方法は何ですか?

4

1 に答える 1

0

自分への回答: 次の簡単なスクリプトを使用して、変更ログを jenkins マスターから jenkins スレーブに取得し、取得した 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 に答える