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: | # 获取当前日期作为基础版本号 current_date=$(date +"%Y.%m.%d" | sed 's/\.0/\./g') echo "current_date=$current_date" # 获取所有发布版本号 json='' json=$(curl -H 'Authorization:token ${{ inputs.token }}' ${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases) # 检查是否存在当前日期的版本 if [ -n "$json" ]; then # 提取所有标签名 tags=$(echo $json | grep -oP '"tag_name"\s*:\s*"\K[^"]*') # 过滤出当前日期的版本 date_tags=$(echo "$tags" | grep "^$current_date") echo "date_tags=$date_tags" if [ -n "$date_tags" ]; then # 计算当前日期版本的数量 count=$(echo "$date_tags" | wc -l) # 如果有多个版本,添加数字后缀 if [ $count -gt 0 ]; then version="$current_date-$count" else version="$current_date" fi else version="$current_date" fi else version="$current_date" 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 }}