67 lines
2.0 KiB
YAML
67 lines
2.0 KiB
YAML
name: auto-release
|
|
description: 自动发布版本
|
|
|
|
inputs:
|
|
server_url:
|
|
required: false
|
|
description: 服务器地址
|
|
default: ${{ gitea.server_url }}
|
|
token:
|
|
required: false
|
|
description: 授权凭证
|
|
default: ${{ gitea.token }}
|
|
files:
|
|
required: false
|
|
description: 要上传的文件
|
|
|
|
outputs:
|
|
version:
|
|
description: 发布的版本号
|
|
value: ${{ steps.get_version.outputs.version }}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: 获取最新发布版本号
|
|
id: get_version
|
|
shell: bash
|
|
run: |
|
|
json=''
|
|
echo 'curl -H 'Authorization:token ${{ inputs.token }}' ${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest'
|
|
json=$(curl -H 'Authorization:token ${{ inputs.token }}' ${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/latest)
|
|
|
|
if [ -n "$json" ] && echo $json|grep -q "tag_name"; then
|
|
last_version=$(echo $json | grep -oP '"tag_name"\s*:\s*"\K[^"]*')
|
|
echo "last_version=$last_version"
|
|
else
|
|
last_version=''
|
|
fi
|
|
|
|
if [ -n "$last_version" ]; then
|
|
echo "存在版本号,$last_version"
|
|
array=(${last_version//./ })
|
|
array[-1]=$((array[-1]+1))
|
|
version=${array[*]}
|
|
version=${version// /.}
|
|
else
|
|
echo '不存在版本号'
|
|
version='1.0.0'
|
|
fi
|
|
echo "version=$version"
|
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: 创建标签
|
|
shell: bash
|
|
run: |
|
|
tag_name="${{ steps.get_version.outputs.version }}"
|
|
git tag $tag_name ${{ gitea.ref_name }}
|
|
git push --tags
|
|
|
|
- name: 发布版本
|
|
uses: actions/release@master
|
|
with:
|
|
name: ${{ steps.get_version.outputs.version }}
|
|
tag_name: ${{ steps.get_version.outputs.version }}
|
|
target_commitish: ${{ gitea.ref_name }}
|
|
files: ${{ inputs.files }}
|