mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-08 04:48:10 +08:00
75 lines
2.0 KiB
YAML
75 lines
2.0 KiB
YAML
####### 可解析的提交前缀 ########
|
|
# ci: 持续集成
|
|
# fix: 修改
|
|
# feat: 新增
|
|
# refactor: 重构
|
|
# docs: 文档
|
|
# style: 样式
|
|
# chore: 其他
|
|
# build: 构建
|
|
# pref: 优化
|
|
# test: 测试
|
|
###############################
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*' # 仅匹配 v* 版本标签,如 v1.0、v20.15.10
|
|
|
|
name: Create Release
|
|
permissions: write-all
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 18
|
|
|
|
- name: Install dependencies
|
|
run: npm install -g gen-git-log
|
|
|
|
- name: Find Last Tag
|
|
id: last_tag
|
|
run: |
|
|
# 获取所有标签,按版本号降序排序
|
|
all_tags=$(git tag --list --sort=-version:refname)
|
|
|
|
# 获取最新的标签
|
|
LATEST_TAG=$(echo "$all_tags" | head -n 1)
|
|
|
|
# 获取倒数第二个标签(如果有)
|
|
SECOND_LATEST_TAG=$(echo "$all_tags" | sed -n '2p')
|
|
|
|
# 如果没有任何标签,默认 v1.0.0
|
|
LATEST_TAG=${LATEST_TAG:-v1.0.0}
|
|
SECOND_LATEST_TAG=${SECOND_LATEST_TAG:-v1.0.0}
|
|
|
|
# 设置环境变量
|
|
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV
|
|
echo "SECOND_LATEST_TAG=$SECOND_LATEST_TAG" >> $GITHUB_ENV
|
|
|
|
- name: Generate Release Notes
|
|
run: |
|
|
rm -rf log
|
|
mkdir -p log
|
|
git-log -m tag -f -S $SECOND_LATEST_TAG -v ${LATEST_TAG#v}
|
|
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ env.LATEST_TAG }}
|
|
release_name: Release ${{ env.LATEST_TAG }}
|
|
body_path: log/${{ env.LATEST_TAG }}.md
|
|
draft: false
|
|
prerelease: false |