mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-07 20:48:09 +08:00
64 lines
1.9 KiB
YAML
64 lines
1.9 KiB
YAML
on:
|
|
push:
|
|
# Sequence of patterns matched against refs/tags
|
|
tags:
|
|
- 'v*' # Push events to matching v*, i.e. 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: |
|
|
|
|
# 获取所有标签,按版本排序(降序)
|
|
Tags=$(git tag --list --sort=-version:refname)
|
|
|
|
# 获取最新的标签(即列表中的第一个)
|
|
LATEST_TAG=$(echo "$Tags" | awk 'NR==1 {print $1; exit}')
|
|
|
|
# 获取倒数第二个标签(如果存在)
|
|
if [[ -n "$Tags" ]]; then
|
|
SECOND_LATEST_TAG=$(echo "$Tags" | tac | awk 'NR==1 {print $1; exit}')
|
|
else
|
|
SECOND_LATEST_TAG=""
|
|
fi
|
|
|
|
# 设置输出变量
|
|
echo "::set-output name=tag_last::${LATEST_TAG:-v1.0.0}"
|
|
echo "::set-output name=tag_cmd::-S ${SECOND_LATEST_TAG:-v1.0.0} "
|
|
|
|
- name: Generate Release Notes
|
|
run: |
|
|
rm -rf log
|
|
newTag=${{ steps.last_tag.outputs.tag_last }}
|
|
git-log -m tag -f ${{ steps.last_tag.outputs.tag_cmd }}-v ${newTag#v}
|
|
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
|
with:
|
|
tag_name: ${{ steps.last_tag.outputs.tag_last }}
|
|
release_name: Release ${{ steps.last_tag.outputs.tag_last }}
|
|
body_path: log/${{steps.last_tag.outputs.tag_last}}.md
|
|
draft: false
|
|
prerelease: false |