Release v1.6.2 测试生成readme.md
Some checks failed
自动版本发布 / AutoRelease (push) Failing after 8s

This commit is contained in:
liyp 2025-04-12 21:14:39 +08:00
parent 7c60b3e77b
commit 6d839356a3

View File

@ -13,7 +13,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# 以下是steps # 以下是steps
steps: steps:
- name: 检出仓库 - name: 检出仓库
uses: https://git.linuxacme.com/iorebuild/checkout@v4 uses: https://git.linuxacme.com/iorebuild/checkout@v4
with: with:
@ -22,223 +21,226 @@ jobs:
submodules: false submodules: false
- name: 设置环境变量 - name: 设置环境变量
id: RepoInfo id: ActionEnv
env:
CURRENT_USER_NAME: ${{ github.actor }}
CURRENT_USER_EMAIL: ""
CURRENT_REPO: ${{ github.repository }}
CURRENT_SERVER_URL: ${{ github.server_url }}
run: | run: |
# 先读取邮箱再设置邮箱 Name: ${{ github.actor }}
EMAIL=$(git log -1 --pretty=format:'%ae') Email: $(git log -1 --pretty=format:'%ae')
echo "CURRENT_USER_EMAIL=$EMAIL" >> $GITHUB_ENV Repo: ${{ github.repository }}
echo "用户名 = ${steps.RepoInfo.CURRENT_USER_NAME}}" ServerUrl: ${{ github.server_url }}
echo "邮箱 = $CURRENT_USER_EMAIL"
echo "仓库名 = $CURRENT_REPO"
echo "服务器URL = $CURRENT_SERVER_URL"
- name: 设置环境变量 echo "ENV_USER_NAME = $Name" >> $GITHUB_OUTPUT
echo "ENV_USER_EMAIL=$Email" >> $GITHUB_OUTPUT
echo "ENV_REPO_NAME = $Repo" >> $GITHUB_OUTPUT
echo "ENV_SERVER_UEL = $ServerUrl" >> $GITHUB_OUTPUT
- name: 检查环境变量
run: | run: |
git config user.name "$CURRENT_USER_NAME" echo "用户名 = ${{ steps.ActionEnv.outputs.ENV_USER_NAME }}"
git config user.email "$CURRENT_USER_EMAIL" echo "邮箱= ${{ steps.ActionEnv.outputs.ENV_USER_EMAIL }}"
echo "Name = $CURRENT_USER_NAME" echo "仓库名 = ${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}"
echo "Email = $CURRENT_USER_EMAIL" echo "服务器URL = ${{ steps.ActionEnv.outputs.ENV_SERVER_UEL }}"
- name: 替换软件源为国内软件源USTC
run: |
cat /etc/os-release
sudo rm -f /etc/apt/sources.list
sudo rm -f /etc/apt/sources.list.d/*
sudo tee /etc/apt/sources.list <<EOF
deb http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
EOF
- name: 从提交信息提取版本号 # # git config user.name "$CURRENT_USER_NAME"
id: extract_version # # git config user.email "$CURRENT_USER_EMAIL"
run: | # # echo "Name = $CURRENT_USER_NAME"
# 从提交信息中提取 vX.X.X 格式的版本号 # # echo "Email = $CURRENT_USER_EMAIL"
VERSION=$(echo "${{ github.event.head_commit.message }}" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+')
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "提取到的版本号: $VERSION"
- name: 验证版本号 # - name: 替换软件源为国内软件源USTC
run: | # run: |
if [ -z "${{ steps.extract_version.outputs.version }}" ]; then # cat /etc/os-release
echo "::error::提交信息中未找到有效的版本号 (示例: 'Release v1.0.5')" # sudo rm -f /etc/apt/sources.list
exit 1 # sudo rm -f /etc/apt/sources.list.d/*
fi # sudo tee /etc/apt/sources.list <<EOF
echo "${{ steps.extract_version.outputs.version }}" # deb http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
# deb http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
# deb http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
# deb http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
# EOF
- name: 创建并推送标签 # - name: 从提交信息提取版本号
run: | # id: extract_version
git tag -a ${{ steps.extract_version.outputs.version }} -m "Release ${{ steps.extract_version.outputs.version }}" # run: |
git push origin ${{ steps.extract_version.outputs.version }} # # 从提交信息中提取 vX.X.X 格式的版本号
# VERSION=$(echo "${{ github.event.head_commit.message }}" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+')
# echo "version=$VERSION" >> $GITHUB_OUTPUT
# echo "提取到的版本号: $VERSION"
- name: 查找第1个.bin 文件 # - name: 验证版本号
id: find-bin-files-1 # run: |
run: | # if [ -z "${{ steps.extract_version.outputs.version }}" ]; then
BIN_FILES=$(find ./Bin -name "*.bin" -print0 | tr '\0' ',') # echo "::error::提交信息中未找到有效的版本号 (示例: 'Release v1.0.5')"
BIN_FILES=${BIN_FILES%,} # exit 1
echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT # fi
echo "bin_files=$BIN_FILES" # echo "${{ steps.extract_version.outputs.version }}"
- name: 查找第2个.bin 文件
id: find-bin-files-2
run: |
BIN_FILES=$(find ./Bin1 -name "*.bin" -print0 | tr '\0' ',')
BIN_FILES=${BIN_FILES%,}
echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
- name: 查找第3个.bin 文件
id: find-bin-files-3
run: |
BIN_FILES=$(find ./Bin2 -name "*.bin" -print0 | tr '\0' ',')
BIN_FILES=${BIN_FILES%,}
echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
- name: 获取上次发布标签 # - name: 创建并推送标签
id: get-previous-tag # run: |
run: | # git tag -a ${{ steps.extract_version.outputs.version }} -m "Release ${{ steps.extract_version.outputs.version }}"
PREVIOUS_TAG=$(git tag --sort=-creatordate | sed -n '2p') # git push origin ${{ steps.extract_version.outputs.version }}
if [ -z "$PREVIOUS_TAG" ]; then
PREVIOUS_TAG="HEAD~1" # 如果没有上次标签,使用上一次提交
fi
echo "previous_tag=$PREVIOUS_TAG" >> $GITHUB_OUTPUT
echo "$PREVIOUS_TAG"
- name: 获取提交记录 # - name: 查找第1个.bin 文件
id: get-commit-log # id: find-bin-files-1
run: | # run: |
COMMIT_LOG=$(git log ${{ steps.get-previous-tag.outputs.previous_tag }}..HEAD --pretty=format:"- %s (%h)" | tr '\n' '\r') # BIN_FILES=$(find ./Bin -name "*.bin" -print0 | tr '\0' ',')
echo "commit_log=$COMMIT_LOG" >> $GITHUB_OUTPUT # BIN_FILES=${BIN_FILES%,}
echo "commit_log=$COMMIT_LOG" # echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
# echo "bin_files=$BIN_FILES"
# - name: 查找第2个.bin 文件
# id: find-bin-files-2
# run: |
# BIN_FILES=$(find ./Bin1 -name "*.bin" -print0 | tr '\0' ',')
# BIN_FILES=${BIN_FILES%,}
# echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
# - name: 查找第3个.bin 文件
# id: find-bin-files-3
# run: |
# BIN_FILES=$(find ./Bin2 -name "*.bin" -print0 | tr '\0' ',')
# BIN_FILES=${BIN_FILES%,}
# echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
- name: 解析Release标题 # - name: 获取上次发布标签
id: parse-release # id: get-previous-tag
run: | # run: |
commit_message="${{ github.event.head_commit.message }}" # PREVIOUS_TAG=$(git tag --sort=-creatordate | sed -n '2p')
title=$(echo "$commit_message" | cut -d ' ' -f 3-) # if [ -z "$PREVIOUS_TAG" ]; then
if [ -z "$title" ]; then # PREVIOUS_TAG="HEAD~1" # 如果没有上次标签,使用上一次提交
echo "未在提交信息中找到 Release 标题。" # fi
title="default_title" # echo "previous_tag=$PREVIOUS_TAG" >> $GITHUB_OUTPUT
fi # echo "$PREVIOUS_TAG"
# 使用新语法设置输出
echo "title=$title" >> $GITHUB_OUTPUT
echo "title=$title"
- name: 获取最终Release信息 # - name: 获取提交记录
run: | # id: get-commit-log
echo "Version = ${{ steps.extract_version.outputs.version }}" # run: |
echo "Repo = ${{ github.server_url }}/${{ github.repository }}" # COMMIT_LOG=$(git log ${{ steps.get-previous-tag.outputs.previous_tag }}..HEAD --pretty=format:"- %s (%h)" | tr '\n' '\r')
echo "TagName = ${{ steps.extract_version.outputs.version }}" # echo "commit_log=$COMMIT_LOG" >> $GITHUB_OUTPUT
echo "ReleaseName = ${{ steps.parse-release.outputs.title }}" # echo "commit_log=$COMMIT_LOG"
echo "Body = ${{ steps.get-commit-log.outputs.commit_log }}"
- name: 创建Gitea发布 # - name: 解析Release标题
uses: https://git.linuxacme.com/iorebuild/gitea-release-action@main # id: parse-release
with: # run: |
gitea_token: ${{ secrets.AUTOGENERATE }} # commit_message="${{ github.event.head_commit.message }}"
gitea_instance_url: ${{ github.server_url }} # title=$(echo "$commit_message" | cut -d ' ' -f 3-)
repository: ${{ github.repository }} # if [ -z "$title" ]; then
name: ${{ steps.parse-release.outputs.title }} # echo "未在提交信息中找到 Release 标题。"
tag_name: ${{ steps.extract_version.outputs.version }} # title="default_title"
body: | # fi
${{ steps.get-commit-log.outputs.commit_log }} # # 使用新语法设置输出
draft: false # echo "title=$title" >> $GITHUB_OUTPUT
prerelease: false # echo "title=$title"
files: |
${{ steps.find-bin-files-1.outputs.bin_files }}
${{ steps.find-bin-files-2.outputs.bin_files }}
${{ steps.find-bin-files-3.outputs.bin_files }}
AutoREADME.md: # - name: 获取最终Release信息
# 工作在ubuntu-latest系统中 # run: |
runs-on: ubuntu-latest # echo "Version = ${{ steps.extract_version.outputs.version }}"
# 以下是steps # echo "Repo = ${{ github.server_url }}/${{ github.repository }}"
steps: # echo "TagName = ${{ steps.extract_version.outputs.version }}"
# echo "ReleaseName = ${{ steps.parse-release.outputs.title }}"
# echo "Body = ${{ steps.get-commit-log.outputs.commit_log }}"
- name: 检出仓库 # - name: 创建Gitea发布
uses: https://git.linuxacme.com/iorebuild/checkout@v4 # uses: https://git.linuxacme.com/iorebuild/gitea-release-action@main
with: # with:
fetch-depth: 0 # gitea_token: ${{ secrets.AUTOGENERATE }}
# 启用子模块支持 # gitea_instance_url: ${{ github.server_url }}
submodules: false # repository: ${{ github.repository }}
# name: ${{ steps.parse-release.outputs.title }}
# tag_name: ${{ steps.extract_version.outputs.version }}
# body: |
# ${{ steps.get-commit-log.outputs.commit_log }}
# draft: false
# prerelease: false
# files: |
# ${{ steps.find-bin-files-1.outputs.bin_files }}
# ${{ steps.find-bin-files-2.outputs.bin_files }}
# ${{ steps.find-bin-files-3.outputs.bin_files }}
- name: 设置环境变量 # AutoREADME.md:
run: | # # 工作在ubuntu-latest系统中
git config user.name "$CURRENT_USER_NAME" # runs-on: ubuntu-latest
git config user.email "$CURRENT_USER_EMAIL" # # 以下是steps
echo "Name = $CURRENT_USER_NAME" # steps:
echo "Email = $CURRENT_USER_EMAIL"
- name: 替换软件源为国内软件源USTC # - name: 检出仓库
run: | # uses: https://git.linuxacme.com/iorebuild/checkout@v4
cat /etc/os-release # with:
sudo rm -f /etc/apt/sources.list # fetch-depth: 0
sudo rm -f /etc/apt/sources.list.d/* # # 启用子模块支持
sudo tee /etc/apt/sources.list <<EOF # submodules: false
deb http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
EOF
- name: 如果有README文件存在则删除掉 # - name: 设置环境变量
run: | # run: |
if [ -f "README.md" ]; then # git config user.name "$CURRENT_USER_NAME"
rm README.md # git config user.email "$CURRENT_USER_EMAIL"
echo "README.md has been removed." # echo "Name = $CURRENT_USER_NAME"
else # echo "Email = $CURRENT_USER_EMAIL"
echo "README.md does not exist."
fi
- name: 添加工程名字到README.md # - name: 替换软件源为国内软件源USTC
run: | # run: |
REPO_NAME="ActionDemo" # cat /etc/os-release
if [ -f "README.md" ]; then # sudo rm -f /etc/apt/sources.list
TEMP=$(cat README.md) # sudo rm -f /etc/apt/sources.list.d/*
echo "$REPO_NAME" > README.md # sudo tee /etc/apt/sources.list <<EOF
echo "$TEMP" >> README.md # deb http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
else # deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse
echo "$REPO_NAME" > README.md # deb http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
fi # deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse
# deb http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
# deb http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
# EOF
- name: Fetch Gitea Releases # - name: 如果有README文件存在则删除掉
id: fetch-releases # run: |
run: | # if [ -f "README.md" ]; then
# 使用 Gitea API 获取所有 Release 信息 # rm README.md
releases=$(curl -s -H "Authorization: token $GITEA_TOKEN" "$GITEA_API_URL/repos/$GITEA_OWNER/$GITEA_REPO/releases") # echo "README.md has been removed."
# else
# echo "README.md does not exist."
# fi
# 将 JSON 数据解析为数组 # - name: 添加工程名字到README.md
releases_array=$(echo "$releases" | jq -c '.[]') # run: |
# REPO_NAME="ActionDemo"
# if [ -f "README.md" ]; then
# TEMP=$(cat README.md)
# echo "$REPO_NAME" > README.md
# echo "$TEMP" >> README.md
# else
# echo "$REPO_NAME" > README.md
# fi
# 按发布时间排序 # - name: Fetch Gitea Releases
sorted_releases=$(echo "$releases_array" | jq -s 'sort_by(.published_at)') # id: fetch-releases
# run: |
# # 使用 Gitea API 获取所有 Release 信息
# releases=$(curl -s -H "Authorization: token $GITEA_TOKEN" "$GITEA_API_URL/repos/$GITEA_OWNER/$GITEA_REPO/releases")
# 生成 Markdown 内容 # # 将 JSON 数据解析为数组
markdown_content="# Releases\n\n" # releases_array=$(echo "$releases" | jq -c '.[]')
while read -r release; do
tag_name=$(echo "$release" | jq -r '.tag_name')
published_at=$(echo "$release" | jq -r '.published_at')
body=$(echo "$release" | jq -r '.body')
markdown_content+=$(printf "## %s (%s)\n\n%s\n\n" "$tag_name" "$published_at" "$body") # # 按发布时间排序
done <<< "$sorted_releases" # sorted_releases=$(echo "$releases_array" | jq -s 'sort_by(.published_at)')
# 将内容写入 README.md # # 生成 Markdown 内容
echo "$markdown_content" > README.md # markdown_content="# Releases\n\n"
# while read -r release; do
# tag_name=$(echo "$release" | jq -r '.tag_name')
# published_at=$(echo "$release" | jq -r '.published_at')
# body=$(echo "$release" | jq -r '.body')
- name: 提交和推送代码 # markdown_content+=$(printf "## %s (%s)\n\n%s\n\n" "$tag_name" "$published_at" "$body")
run: | # done <<< "$sorted_releases"
git add README.md
git commit -m "Update README.md" # # 将内容写入 README.md
git push https://${{ secrets.AUTOGENERATE }}@git.linuxacme.com/${{ github.repository }} # echo "$markdown_content" > README.md
# - name: 提交和推送代码
# run: |
# git add README.md
# git commit -m "Update README.md"
# git push https://${{ secrets.AUTOGENERATE }}@git.linuxacme.com/${{ github.repository }}