Skip to content

chore(release): 1.8.0 #8

chore(release): 1.8.0

chore(release): 1.8.0 #8

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate changelog
run: |
CURRENT_TAG="${GITHUB_REF_NAME}"
# 找到上一个版本 tag(按 semver 降序,取第一个不是当前 tag 的)
PREV_TAG=""
for tag in $(git tag --list 'v*' --sort=-v:refname); do
if [ "$tag" != "$CURRENT_TAG" ]; then
PREV_TAG="$tag"
break
fi
done
echo "# Release ${CURRENT_TAG}" > release_notes.md
echo "" >> release_notes.md
if [ -n "$PREV_TAG" ]; then
echo "## Changes since ${PREV_TAG}" >> release_notes.md
echo "" >> release_notes.md
git log --no-decorate --format="- %s" "${PREV_TAG}..${CURRENT_TAG}" >> release_notes.md
else
echo "## Initial release" >> release_notes.md
echo "" >> release_notes.md
git log --no-decorate --format="- %s" "${CURRENT_TAG}" >> release_notes.md
fi
- name: Delete existing release (if any)
run: |
if gh release view "${GITHUB_REF_NAME}" &>/dev/null; then
echo "Deleting existing release ${GITHUB_REF_NAME}..."
gh release delete "${GITHUB_REF_NAME}" --yes
else
echo "No existing release for ${GITHUB_REF_NAME}, skipping delete"
fi
env:
GH_TOKEN: ${{ github.token }}
- name: Create Release
uses: softprops/action-gh-release@v2
with:
body_path: release_notes.md