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 }}