mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-20 13:40:10 +08:00
Improve tag handling in auto-release workflow
Switches tag retrieval to use the GitHub API and sorts tags with jq for more reliable ordering. Adds explicit GITHUB_OWNER and GITHUB_REPO variables, improves previous tag selection logic, and ensures tags are fetched before generating release notes. Also adds more informative logging for debugging.
This commit is contained in:
parent
31a7767ae4
commit
ec5ca5d89a
21
.github/workflows/auto-release.yml
vendored
21
.github/workflows/auto-release.yml
vendored
@ -88,21 +88,25 @@ jobs:
|
|||||||
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
|
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
|
||||||
OPENROUTER_API_URL: ${{ env.OPENROUTER_API_URL }}
|
OPENROUTER_API_URL: ${{ env.OPENROUTER_API_URL }}
|
||||||
OPENROUTER_MODEL: ${{ env.OPENROUTER_MODEL }}
|
OPENROUTER_MODEL: ${{ env.OPENROUTER_MODEL }}
|
||||||
|
GITHUB_OWNER: "NapNeKo" # 替换成你的 repo owner
|
||||||
|
GITHUB_REPO: "NapCatQQ" # 替换成你的 repo 名
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# 当前 tag
|
# 当前 tag
|
||||||
CURRENT_TAG="${GITHUB_REF#refs/tags/}"
|
CURRENT_TAG="${GITHUB_REF#refs/tags/}"
|
||||||
|
echo "Current tag: $CURRENT_TAG"
|
||||||
|
|
||||||
# 获取所有 tag 按创建时间倒序排列
|
# 从 GitHub API 获取 tag 列表
|
||||||
TAGS=( $(git tag --sort=-creatordate) )
|
TAGS_JSON=$(curl -s "https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/tags?per_page=100")
|
||||||
|
TAGS=( $(echo "$TAGS_JSON" | jq -r '.[].name' | sort -V) )
|
||||||
|
|
||||||
# 找到上一个 tag
|
# 找到上一个 tag
|
||||||
PREV_TAG=""
|
PREV_TAG=""
|
||||||
for i in "${!TAGS[@]}"; do
|
for i in "${!TAGS[@]}"; do
|
||||||
if [ "${TAGS[$i]}" = "$CURRENT_TAG" ]; then
|
if [ "${TAGS[$i]}" = "$CURRENT_TAG" ]; then
|
||||||
if [ $((i+1)) -lt ${#TAGS[@]} ]; then
|
if [ $i -gt 0 ]; then
|
||||||
PREV_TAG="${TAGS[$((i+1))]}"
|
PREV_TAG="${TAGS[$((i-1))]}"
|
||||||
fi
|
fi
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
@ -113,11 +117,18 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Generating release note from $PREV_TAG to $CURRENT_TAG"
|
echo "Previous tag: $PREV_TAG"
|
||||||
|
|
||||||
|
# 强制拉取上一个 tag 和当前 tag
|
||||||
|
git fetch origin "refs/tags/$PREV_TAG:refs/tags/$PREV_TAG" --force
|
||||||
|
git fetch origin "refs/tags/$CURRENT_TAG:refs/tags/$CURRENT_TAG" --force
|
||||||
|
|
||||||
# 获取 commit title + body + 作者,保留换行
|
# 获取 commit title + body + 作者,保留换行
|
||||||
COMMITS=$(git log --pretty=format:'%h %B (%an)' "$PREV_TAG".."$CURRENT_TAG" | sed 's/$/\\n/')
|
COMMITS=$(git log --pretty=format:'%h %B (%an)' "$PREV_TAG".."$CURRENT_TAG" | sed 's/$/\\n/')
|
||||||
|
|
||||||
|
echo "Commit list from $PREV_TAG to $CURRENT_TAG:"
|
||||||
|
echo -e "$COMMITS"
|
||||||
|
|
||||||
# 读取 prompt
|
# 读取 prompt
|
||||||
PROMPT_FILE=".github/prompt/release_note_prompt.txt"
|
PROMPT_FILE=".github/prompt/release_note_prompt.txt"
|
||||||
SYSTEM_PROMPT=$(<"$PROMPT_FILE")
|
SYSTEM_PROMPT=$(<"$PROMPT_FILE")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user