chore(release): 1.8.0 #8
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |