From 5b97b849b53b9b93ca4af41fbdedfd655c2bd95f Mon Sep 17 00:00:00 2001 From: GuoChenxu Date: Wed, 23 Jul 2025 19:07:53 +0800 Subject: [PATCH] Release note format (#2647) Signed-off-by: guochenxu --- .github/workflows/generate-release-notes.yaml | 44 ++++++++++++++++--- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/.github/workflows/generate-release-notes.yaml b/.github/workflows/generate-release-notes.yaml index 6d008c19d..92d86d771 100644 --- a/.github/workflows/generate-release-notes.yaml +++ b/.github/workflows/generate-release-notes.yaml @@ -43,6 +43,17 @@ jobs: git clone https://github.com/higress-group/higress-report-agent.git mv github-mcp-serve higress-report-agent/ + - name: Clean up old release notes + run: | + RELEASE_VERSION=$(cat ${GITHUB_WORKSPACE}/VERSION) + CLEAN_VERSION=${RELEASE_VERSION#v} + if [ -d "release-notes/${CLEAN_VERSION}" ]; then + echo "Removing old release notes directory: release-notes/${CLEAN_VERSION}" + rm -rf release-notes/${CLEAN_VERSION} + else + echo "No old release notes directory found for version ${CLEAN_VERSION}." + fi + - name: Create Release Report Script run: | cat > generate_release_report.sh << 'EOF' @@ -59,6 +70,7 @@ jobs: PR_NUMS=${PR_NUMS%,} if [ -z "${PR_NUMS}" ]; then echo "No PR numbers found in release notes for ${GITHUB_REPO_OWNER}/${GITHUB_REPO_NAME} tag=${RELEASE_VERSION}." + rm release_page.html exit 0 fi @@ -84,10 +96,10 @@ jobs: cp report.EN.md ../ cd .. - # 去除版本号前缀v - CLEAN_VERSION=${RELEASE_VERSION#v} + # 去除主库版本号前缀v,以主库版本号为路径 + CLEAN_VERSION=${MAIN_RELEASE_VERSION#v} - echo "Creating release notes directory for version ${RELEASE_VERSION}..." + echo "Creating release notes directory for main version ${MAIN_RELEASE_VERSION}..." mkdir -p release-notes/${CLEAN_VERSION} echo "# ${REPORT_TITLE}" >>release-notes/${CLEAN_VERSION}/README_ZH.md @@ -112,6 +124,7 @@ jobs: GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPORT_TITLE: Higress run: | + export MAIN_RELEASE_VERSION=$(cat ${GITHUB_WORKSPACE}/VERSION) export RELEASE_VERSION=$(cat ${GITHUB_WORKSPACE}/VERSION) bash generate_release_report.sh @@ -122,6 +135,7 @@ jobs: GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPORT_TITLE: Higress Console run: | + export MAIN_RELEASE_VERSION=$(cat ${GITHUB_WORKSPACE}/VERSION) export RELEASE_VERSION=$(grep "^higress-console:" ${GITHUB_WORKSPACE}/DEP_VERSION | head -n1 | sed 's/higress-console: //') bash generate_release_report.sh @@ -138,12 +152,28 @@ jobs: https://api.github.com/repos/${GITHUB_REPO_OWNER}/${GITHUB_REPO_NAME}/releases/tags/${RELEASE_VERSION}) RELEASE_ID=$(echo $RELEASE_INFO | jq -r .id) - RELEASE_NOTES=$(cat release-notes/${CLEAN_VERSION}/README.md) + RELEASE_BODY=$(echo $RELEASE_INFO | jq -r .body) + NEW_CONTRIBUTORS=$(echo "$RELEASE_BODY" | awk '/## New Contributors/{flag=1; next} /\*\*Full Changelog\*\*/{flag=0} flag' | sed 's/\\n/\n/g') + FULL_CHANGELOG=$(echo "$RELEASE_BODY" | awk '/\*\*Full Changelog\*\*:/{print $0}' | sed 's/\*\*Full Changelog\*\*: //g' | sed 's/\\n/\n/g') + + RELEASE_NOTES=$(cat release-notes/${CLEAN_VERSION}/README.md | sed 's/# /## /g') + + if [[ -n "$NEW_CONTRIBUTORS" ]]; then + RELEASE_NOTES="${RELEASE_NOTES} + + ## New Contributors + + ${NEW_CONTRIBUTORS}" + fi + if [[ -n "$FULL_CHANGELOG" ]]; then + RELEASE_NOTES="${RELEASE_NOTES} + + **Full Changelog**: ${FULL_CHANGELOG}" + fi + JSON_DATA=$(jq -n \ - --arg tag "$RELEASE_VERSION" \ - --arg name "$RELEASE_VERSION" \ --arg body "$RELEASE_NOTES" \ - '{tag_name: $tag, name: $name, body: $body, draft: false, prerelease: false}') + '{body: $body}') curl -L \ -X PATCH \