Compare commits

..

No commits in common. "main" and "v1.5.9" have entirely different histories.
main ... v1.5.9

7 changed files with 58 additions and 282 deletions

View File

@ -6,9 +6,10 @@ on:
- main - main
env: env:
PROJECT_NAME: "私有仓库Action测试" CURRENT_USER_NAME: ${{ github.actor }}
DEVELOP_TOOLS: "Keil-V5.35.0.0" CURRENT_USER_EMAIL: $(git log -1 --pretty=format:'%ae')
COMPILER: "V5.06 update 7(build960)" CURRENT_REPO: ${{ github.repository }}
CURRENT_SERVER_URL: ${{ github.server_url }}
jobs: jobs:
AutoRelease: AutoRelease:
@ -18,6 +19,7 @@ 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:
@ -25,38 +27,19 @@ jobs:
# 启用子模块支持 # 启用子模块支持
submodules: false submodules: false
- name: 设置环境变量
id: ActionEnv
run: |
#设置上海时间
sudo ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 正确的变量赋值
UserName="${{ github.actor }}"
UserEmail=$(git log -1 --pretty=format:'%ae')
GitRepo="${{ github.repository }}"
ServerUrl="${{ github.server_url }}"
RepoUrl="${{ github.repository }}"
# 将变量设置为步骤输出
echo "ENV_USER_NAME=$UserName" >> $GITHUB_OUTPUT
echo "ENV_USER_EMAIL=$UserEmail" >> $GITHUB_OUTPUT
echo "ENV_REPO_NAME=$GitRepo" >> $GITHUB_OUTPUT
echo "ENV_SERVER_URL=$ServerUrl" >> $GITHUB_OUTPUT
echo "ENV_REPO_URL=$ServerUrl/$RepoUrl" >> $GITHUB_OUTPUT
- name: 检查环境变量 - name: 检查环境变量
run: | run: |
echo "用户名 = ${{ steps.ActionEnv.outputs.ENV_USER_NAME }}" echo "用户名 = $CURRENT_USER_NAME"
echo "邮箱= ${{ steps.ActionEnv.outputs.ENV_USER_EMAIL }}" echo "邮箱 = $CURRENT_USER_EMAIL"
echo "仓库名 = ${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}" echo "仓库名 = $CURRENT_REPO"
echo "服务器URL = ${{ steps.ActionEnv.outputs.ENV_SERVER_URL }}" echo "服务器URL = $CURRENT_SERVER_URL"
echo "仓库URL = ${{ steps.ActionEnv.outputs.ENV_REPO_URL }}"
- name: 配置Git用户 - name: 设置环境变量
run: | run: |
git config user.name "${{ steps.ActionEnv.outputs.ENV_USER_NAME }}" git config user.name "$CURRENT_USER_NAME"
git config user.email "${{ steps.ActionEnv.outputs.ENV_USER_EMAIL }}" git config user.email "$CURRENT_USER_EMAIL"
echo "Name = $CURRENT_USER_NAME"
echo "Email = $CURRENT_USER_EMAIL"
- name: 替换软件源为国内软件源USTC - name: 替换软件源为国内软件源USTC
run: | run: |
@ -85,7 +68,7 @@ jobs:
- name: 验证版本号 - name: 验证版本号
run: | run: |
if [ -z "${{ steps.extract_version.outputs.version }}" ]; then if [ -z "${{ steps.extract_version.outputs.version }}" ]; then
echo "::error::提交信息中未找到有效的版本号 (示例: 'Release v1.0.1')" echo "::error::提交信息中未找到有效的版本号 (示例: 'Release v1.0.5')"
exit 1 exit 1
fi fi
echo "${{ steps.extract_version.outputs.version }}" echo "${{ steps.extract_version.outputs.version }}"
@ -95,17 +78,11 @@ jobs:
git tag -a ${{ steps.extract_version.outputs.version }} -m "Release ${{ steps.extract_version.outputs.version }}" git tag -a ${{ steps.extract_version.outputs.version }} -m "Release ${{ steps.extract_version.outputs.version }}"
git push origin ${{ steps.extract_version.outputs.version }} git push origin ${{ steps.extract_version.outputs.version }}
- name: 创建md5文件
id: touch-md5-file
run: |
touch md5.txt
- name: 查找第1个.bin 文件 - name: 查找第1个.bin 文件
id: find-bin-files-1 id: find-bin-files-1
run: | run: |
BIN_FILES=$(find ./Bin -name "*.bin" -print0 | tr '\0' ',') BIN_FILES=$(find ./Bin -name "*.bin" -print0 | tr '\0' ',')
BIN_FILES=${BIN_FILES%,} BIN_FILES=${BIN_FILES%,}
md5sum $BIN_FILES >> md5.txt
echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
echo "bin_files=$BIN_FILES" echo "bin_files=$BIN_FILES"
- name: 查找第2个.bin 文件 - name: 查找第2个.bin 文件
@ -113,22 +90,14 @@ jobs:
run: | run: |
BIN_FILES=$(find ./Bin1 -name "*.bin" -print0 | tr '\0' ',') BIN_FILES=$(find ./Bin1 -name "*.bin" -print0 | tr '\0' ',')
BIN_FILES=${BIN_FILES%,} BIN_FILES=${BIN_FILES%,}
md5sum $BIN_FILES >> md5.txt
echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
- name: 查找第3个.bin 文件 - name: 查找第3个.bin 文件
id: find-bin-files-3 id: find-bin-files-3
run: | run: |
BIN_FILES=$(find ./Bin2 -name "*.bin" -print0 | tr '\0' ',') BIN_FILES=$(find ./Bin2 -name "*.bin" -print0 | tr '\0' ',')
BIN_FILES=${BIN_FILES%,} BIN_FILES=${BIN_FILES%,}
md5sum $BIN_FILES >> md5.txt
echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT echo "bin_files=$BIN_FILES" >> $GITHUB_OUTPUT
- name: 输出md5文件
id: output-md5-file
run: |
MD5_FILE=md5.txt
echo "md5_result=$MD5_FILE" >> $GITHUB_OUTPUT
- name: 获取上次发布标签 - name: 获取上次发布标签
id: get-previous-tag id: get-previous-tag
run: | run: |
@ -142,11 +111,8 @@ jobs:
- name: 获取提交记录 - name: 获取提交记录
id: get-commit-log id: get-commit-log
run: | run: |
# 获取指定标签到当前提交之间的提交记录,并按特定格式输出,同时过滤掉包含 'Update README.md' 的记录 COMMIT_LOG=$(git log ${{ steps.get-previous-tag.outputs.previous_tag }}..HEAD --pretty=format:"- %s (%h)" | tr '\n' '\r')
COMMIT_LOG=$(git log ${{ steps.get-previous-tag.outputs.previous_tag }}..HEAD --pretty=format:"- %s (%h)" | grep -v 'Update README.md' | tr '\n' '\r')
# 将 COMMIT_LOG 变量的值输出到 GitHub Actions 的输出中
echo "commit_log=$COMMIT_LOG" >> $GITHUB_OUTPUT echo "commit_log=$COMMIT_LOG" >> $GITHUB_OUTPUT
# 打印 COMMIT_LOG 变量的值,方便调试查看
echo "commit_log=$COMMIT_LOG" echo "commit_log=$COMMIT_LOG"
- name: 解析Release标题 - name: 解析Release标题
@ -164,19 +130,18 @@ jobs:
- name: 获取最终Release信息 - name: 获取最终Release信息
run: | run: |
echo "Repo_Name = ${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}" echo "Version = ${{ steps.extract_version.outputs.version }}"
echo "Repo_Url = ${{ steps.ActionEnv.outputs.ENV_REPO_URL }}" echo "Repo = ${{ github.server_url }}/${{ github.repository }}"
echo "Tag_Name = ${{ steps.extract_version.outputs.version }}" echo "TagName = ${{ steps.extract_version.outputs.version }}"
echo "Release_Name = ${{ steps.parse-release.outputs.title }}" echo "ReleaseName = ${{ steps.parse-release.outputs.title }}"
echo "Release_version = ${{ steps.extract_version.outputs.version }}"
echo "Body = ${{ steps.get-commit-log.outputs.commit_log }}" echo "Body = ${{ steps.get-commit-log.outputs.commit_log }}"
- name: 创建Gitea发布 - name: 创建Gitea发布
uses: https://git.linuxacme.com/iorebuild/gitea-release-action@main uses: https://git.linuxacme.com/iorebuild/gitea-release-action@main
with: with:
gitea_token: ${{ secrets.AUTOGENERATE }} gitea_token: ${{ secrets.AUTOGENERATE }}
gitea_instance_url: ${{ steps.ActionEnv.outputs.ENV_SERVER_URL }} gitea_instance_url: ${{ github.server_url }}
repository: ${{ steps.ActionEnv.outputs.ENV_REPO_NAME }} repository: ${{ github.repository }}
name: ${{ steps.parse-release.outputs.title }} name: ${{ steps.parse-release.outputs.title }}
tag_name: ${{ steps.extract_version.outputs.version }} tag_name: ${{ steps.extract_version.outputs.version }}
body: | body: |
@ -184,7 +149,6 @@ jobs:
draft: false draft: false
prerelease: false prerelease: false
files: | files: |
${{ steps.output-md5-file.outputs.md5_result }}
${{ steps.find-bin-files-1.outputs.bin_files }} ${{ steps.find-bin-files-1.outputs.bin_files }}
${{ steps.find-bin-files-2.outputs.bin_files }} ${{ steps.find-bin-files-2.outputs.bin_files }}
${{ steps.find-bin-files-3.outputs.bin_files }} ${{ steps.find-bin-files-3.outputs.bin_files }}
@ -203,37 +167,11 @@ jobs:
submodules: false submodules: false
- name: 设置环境变量 - name: 设置环境变量
id: ActionEnv
run: | run: |
#设置上海时间 git config user.name "$CURRENT_USER_NAME"
sudo ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime git config user.email "$CURRENT_USER_EMAIL"
echo "Name = $CURRENT_USER_NAME"
# 正确的变量赋值 echo "Email = $CURRENT_USER_EMAIL"
UserName="${{ github.actor }}"
UserEmail=$(git log -1 --pretty=format:'%ae')
GitRepo="${{ github.repository }}"
ServerUrl="${{ github.server_url }}"
RepoUrl="${{ github.repository }}"
# 将变量设置为步骤输出
echo "ENV_USER_NAME=$UserName" >> $GITHUB_OUTPUT
echo "ENV_USER_EMAIL=$UserEmail" >> $GITHUB_OUTPUT
echo "ENV_REPO_NAME=$GitRepo" >> $GITHUB_OUTPUT
echo "ENV_SERVER_URL=$ServerUrl" >> $GITHUB_OUTPUT
echo "ENV_REPO_URL=$ServerUrl/$RepoUrl" >> $GITHUB_OUTPUT
- name: 检查环境变量
run: |
echo "用户名 = ${{ steps.ActionEnv.outputs.ENV_USER_NAME }}"
echo "邮箱= ${{ steps.ActionEnv.outputs.ENV_USER_EMAIL }}"
echo "仓库名 = ${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}"
echo "服务器URL = ${{ steps.ActionEnv.outputs.ENV_SERVER_URL }}"
echo "仓库URL = ${{ steps.ActionEnv.outputs.ENV_REPO_URL }}"
- name: 配置Git用户
run: |
git config user.name "${{ steps.ActionEnv.outputs.ENV_USER_NAME }}"
git config user.email "${{ steps.ActionEnv.outputs.ENV_USER_EMAIL }}"
- name: 替换软件源为国内软件源USTC - name: 替换软件源为国内软件源USTC
run: | run: |
@ -260,49 +198,44 @@ jobs:
echo "README.md does not exist." echo "README.md does not exist."
fi fi
- name: 获取所有Release信息 - name: 添加工程名字到README.md
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
id: fetch-releases id: fetch-releases
run: | run: |
# 使用 Gitea API 获取所有 Release 信息 # 使用 Gitea API 获取所有 Release 信息
RepoInfo=${{ steps.ActionEnv.outputs.ENV_SERVER_URL }}/api/v1/repos/${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}/releases releases=$(curl -s -H "Authorization: token $GITEA_TOKEN" "$GITEA_API_URL/repos/$GITEA_OWNER/$GITEA_REPO/releases")
echo "$RepoInfo"
# 发送请求获取所有 release 信息,添加认证信息
Releases=$(curl -s -H "Authorization: token ${{ secrets.AUTOGENERATE }}" "$RepoInfo")
echo "$Releases"
# 检查是否成功获取信息 # 将 JSON 数据解析为数组
if [ -z "$Releases" ]; then releases_array=$(echo "$releases" | jq -c '.[]')
echo "Failed to fetch Releases."
exit 1 # 按发布时间排序
fi sorted_releases=$(echo "$releases_array" | jq -s 'sort_by(.published_at)')
# 生成 Markdown 内容 # 生成 Markdown 内容
markdown_content="# $PROJECT_NAME\n\n" markdown_content="# Releases\n\n"
markdown_content+="### Develop Tools\n\n" while read -r release; do
markdown_content+=" $DEVELOP_TOOLS\n\n" tag_name=$(echo "$release" | jq -r '.tag_name')
markdown_content+="### Compiler Version\n\n" published_at=$(echo "$release" | jq -r '.published_at')
markdown_content+=" $COMPILER\n\n" body=$(echo "$release" | jq -r '.body')
# 使用 jq 直接解析 JSON 并处理 markdown_content+=$(printf "## %s (%s)\n\n%s\n\n" "$tag_name" "$published_at" "$body")
while IFS= read -r row; do done <<< "$sorted_releases"
tag_name=$(echo "$row" | jq -r '.tag_name')
name=$(echo "$row" | jq -r '.name')
body=$(echo "$row" | jq -r '.body')
published_at=$(echo "$row" | jq -r '.published_at')
# 将 ISO 8601 格式的时间转换为指定格式 # 将内容写入 README.md
formatted_time=$(date -d "$published_at" +"Release at: %Y-%m-%d %H:%M:%S") echo "$markdown_content" > README.md
markdown_content+="## ${name} (${tag_name})\n"
markdown_content+="${formatted_time}\n\n"
markdown_content+="${body}\n\n"
done < <(echo "$Releases" | jq -c '.[]')
# 将 Markdown 内容添加到 README.md 文件中
echo -e "$markdown_content" >> README.md
- name: 提交和推送代码 - name: 提交和推送代码
run: | run: |
git add README.md git add README.md
git commit -m "Update README.md" git commit -m "Update README.md"
git push https://${{ secrets.AUTOGENERATE }}@git.linuxacme.com/${{ steps.ActionEnv.outputs.ENV_REPO_NAME }} git push https://${{ secrets.AUTOGENERATE }}@git.linuxacme.com/${{ github.repository }}

163
README.md
View File

@ -1,161 +1,4 @@
# 私有仓库Action测试 ### Repository Timeline
Tagger: iorebuild <liyepan@linuxacme.com>
### Develop Tools
Keil-V5.35.0.0
### Compiler Version
V5.06 update 7(build960)
## 测试md5 (v1.9.6)
Release at: 2025-05-15 13:03:28
- Release v1.9.6 测试md5 (487514b)
## (v1.9.5)
Release at: 2025-05-15 13:02:27
- Merge branch 'main' of https://git.linuxacme.com/iorebuild/ActionDemo Release v1.9.5 测试md5 (867cd20) - Release v1.9.5 测试md5 (15be011)
## 测试md5 (v1.9.4)
Release at: 2025-05-15 12:59:56
- Release v1.9.4 测试md5 (b4c0ad0)
## 测试多次提交 (v1.9.0)
Release at: 2025-04-26 16:30:00
- Release v1.9.0 测试多次提交 (eb9bf07) - 添加第二个文件 (c8cae34) - 添加第一个文件 (51b2f84)
## 测试生成readme.md (v1.8.9)
Release at: 2025-04-13 10:37:24
- Release v1.8.9 测试生成readme.md (a7833b5)
## 测试生成readme.md (v1.8.8)
Release at: 2025-04-13 10:35:10
- Release v1.8.8 测试生成readme.md (8049629)
## 测试生成readme.md (v1.8.7)
Release at: 2025-04-13 10:30:45
- Release v1.8.7 测试生成readme.md (1805293)
## 测试生成readme.md (v1.8.6)
Release at: 2025-04-13 10:27:49
- Release v1.8.6 测试生成readme.md (8ebcbb9)
## 测试生成readme.md (v1.8.5)
Release at: 2025-04-13 10:21:26
- Release v1.8.5 测试生成readme.md (78f479e) - Update README.md (26f7da4) - 使用统一的仓库名字Release v1.8.4 测试生成readme.md (08e669f) - Update README.md (a432456)
## 测试生成readme.md (v1.8.3)
Release at: 2025-04-13 10:10:46
- Release v1.8.3 测试生成readme.md (feebbfb) - Update README.md (2a5dc32)
## 测试生成readme.md (v1.8.2)
Release at: 2025-04-13 10:06:54
- Release v1.8.2 测试生成readme.md (2fa8e1e) - Update README.md (1218a12)
## 测试生成readme.md (v1.8.1)
Release at: 2025-04-13 10:03:28
- Release v1.8.1 测试生成readme.md (546a75f)
## 测试生成readme.md (v1.8.0)
Release at: 2025-04-13 10:00:42
- Release v1.8.0 测试生成readme.md (5ab5377)
## 测试生成readme.md (v1.7.9)
Release at: 2025-04-13 09:58:31
- Release v1.7.9 测试生成readme.md (f47d1c2)
## 测试生成readme.md (v1.7.6)
Release at: 2025-04-13 09:56:44
- Release v1.7.6 测试生成readme.md (3af1760) - Update README.md (ef8ee16)
## 测试生成readme.md (v1.7.5)
Release at: 2025-04-13 09:53:49
- Release v1.7.5 测试生成readme.md (48b87be)
## 测试生成readme.md (v1.7.4)
Release at: 2025-04-13 09:49:09
- Release v1.7.4 测试生成readme.md (4ab5f2e)
## 测试生成readme.md (v1.7.3)
Release at: 2025-04-13 09:47:49
- Release v1.7.3 测试生成readme.md (851647a)
## 测试生成readme.md (v1.7.2)
Release at: 2025-04-13 09:44:34
- Release v1.7.2 测试生成readme.md (c773df0)
## 测试生成readme.md (v1.7.1)
Release at: 2025-04-13 09:42:15
- Release v1.7.1 测试生成readme.md (cca3ba2)
## 测试生成readme.md (v1.7.0)
Release at: 2025-04-13 09:40:01
- Release v1.7.0 测试生成readme.md (4fb34f4)
## 测试生成readme.md (v1.6.9)
Release at: 2025-04-13 09:37:34
- Release v1.6.9 测试生成readme.md (dcbbc58)
## 测试生成readme.md (v1.6.8)
Release at: 2025-04-12 22:03:48
- Release v1.6.8 测试生成readme.md (ab3fc14)
## 测试生成readme.md (v1.6.7)
Release at: 2025-04-12 21:58:49
- Release v1.6.7 测试生成readme.md (fb1d348)
## 测试生成readme.md (v1.6.5)
Release at: 2025-04-12 21:55:59
- Release v1.6.5 测试生成readme.md (bb7466b)
## 测试生成readme.md (v1.6.0)
Release at: 2025-04-12 20:31:23
- Release v1.6.0 测试生成readme.md (8fd082d)
## 测试生成readme.md (v1.5.9)
Release at: 2025-04-12 20:27:38
- Release v1.5.9 测试生成readme.md (540eaac)
## 测试生成readme.md (v1.5.8)
Release at: 2025-04-12 20:24:31
- Release v1.5.8 测试生成readme.md (02c3be3)
## 测试生成readme.md (v1.5.7)
Release at: 2025-04-12 20:18:06
- Release v1.5.7 测试生成readme.md (635bcb1) - Release v1.5.6 测试生成readme.md (bdeab1b) - Release v1.5.5 测试生成readme.md (fae28b8)
## 测试生成readme.md (v1.5.3)
Release at: 2025-04-12 19:09:51
- Release v1.5.3 测试生成readme.md (baf11b2)
ActionDemo