Compare commits

..

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

12 changed files with 92 additions and 371 deletions

View File

@ -0,0 +1,57 @@
# name: 自动版本发布
# on:
# push:
# branches:
# - main
# jobs:
# create-readme:
# runs-on: ubuntu-latest
# if: "!contains(github.event.head_commit.message, 'AutoRelease.md')"
# steps:
# - name: 删除本地仓库副本
# env:
# REPO_NAME: ${{ github.event.repository.name }}
# run: |
# if [ -d "$REPO_NAME" ]; then
# rm -rf "$REPO_NAME"
# fi
# - name: 检出仓库
# env:
# GITEA_TOKEN: ${{ secrets.AUTOGENERATE }}
# GITEA_REPO_URL: ${{ github.server_url }}/${{ github.repository }}
# CLEAN_REPO_URL: ${{ github.server_url }}/${{ github.repository }}
# run: |
# CLEAN_REPO_URL="${CLEAN_REPO_URL#https://}"
# git clone "https://${GITEA_TOKEN}@${CLEAN_REPO_URL}" .
# - name: 生成版本号
# id: version
# run: |
# VERSION=$(date +'%Y%m%d%H%M%S')
# echo "version=$VERSION" >> $GITHUB_OUTPUT
# - name: 创建 Release
# run: |
# gh release create v${{ steps.version.outputs.version }} --generate-notes
# - name: 重新提交仓库
# env:
# GITEA_TOKEN: ${{ secrets.AUTOGENERATE }}
# GITEA_REPO_URL: ${{ github.server_url }}/${{ github.repository }}
# CLEAN_REPO_URL: ${{ github.server_url }}/${{ github.repository }}
# run: |
# CLEAN_REPO_URL="${CLEAN_REPO_URL#https://}"
# git config --local user.email "liyepan@linuxacme.com"
# git config --local user.name "iorebuild"
# git add README.md
# if git diff --staged --quiet; then
# echo "No changes to commit."
# else
# git commit -m "AutoRelease.md"
# git push "https://${GITEA_TOKEN}@${CLEAN_REPO_URL}"
# fi

View File

@ -5,11 +5,6 @@ on:
branches:
- main
env:
PROJECT_NAME: "私有仓库Action测试"
DEVELOP_TOOLS: "Keil-V5.35.0.0"
COMPILER: "V5.06 update 7(build960)"
jobs:
AutoRelease:
# 如果有Release标签则运行jobs
@ -18,45 +13,25 @@ jobs:
runs-on: ubuntu-latest
# 以下是steps
steps:
- name: 检出仓库
uses: https://git.linuxacme.com/iorebuild/checkout@v4
uses: https://gitee.com/actions-mirror/checkout@v4
with:
fetch-depth: 0
# 启用子模块支持
submodules: false
submodules: true
- name: 设置环境变量
id: ActionEnv
env:
CURRENT_USER_NAME: "iorebuild"
CURRENT_USER_EMAIL: "liyepan@linuxacme.com"
GITEA_REPO_URL: ${{ github.server_url }}/${{ github.repository }}
REPO_NAME: ${{ github.event.repository.name }}
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: 检查环境变量
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 }}"
git config user.name "$CURRENT_USER_NAME"
git config user.email "$CURRENT_USER_EMAIL"
echo "Name = $CURRENT_USER_NAME"
echo "Email = $CURRENT_USER_EMAIL"
- name: 替换软件源为国内软件源USTC
run: |
@ -85,7 +60,7 @@ jobs:
- name: 验证版本号
run: |
if [ -z "${{ steps.extract_version.outputs.version }}" ]; then
echo "::error::提交信息中未找到有效的版本号 (示例: 'Release v1.0.1')"
echo "::error::提交信息中未找到有效的版本号 (示例: 'Release v1.0.5')"
exit 1
fi
echo "${{ steps.extract_version.outputs.version }}"
@ -95,39 +70,13 @@ jobs:
git tag -a ${{ steps.extract_version.outputs.version }} -m "Release ${{ 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 文件
id: find-bin-files-1
- name: 查找 .bin 文件
id: find-bin-files
run: |
BIN_FILES=$(find ./Bin -name "*.bin" -print0 | tr '\0' ',')
BIN_FILES=${BIN_FILES%,}
md5sum $BIN_FILES >> md5.txt
BIN_FILES=${BIN_FILES%,} # 移除最后一个逗号
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%,}
md5sum $BIN_FILES >> md5.txt
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%,}
md5sum $BIN_FILES >> md5.txt
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: 获取上次发布标签
id: get-previous-tag
@ -142,167 +91,40 @@ jobs:
- name: 获取提交记录
id: get-commit-log
run: |
# 获取指定标签到当前提交之间的提交记录,并按特定格式输出,同时过滤掉包含 'Update README.md' 的记录
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 的输出中
COMMIT_LOG=$(git log ${{ steps.get-previous-tag.outputs.previous_tag }}..HEAD --pretty=format:"- %s (%h)" | tr '\n' '\r')
echo "commit_log=$COMMIT_LOG" >> $GITHUB_OUTPUT
# 打印 COMMIT_LOG 变量的值,方便调试查看
echo "commit_log=$COMMIT_LOG"
- name: 解析Release标题
id: parse-release
run: |
# 获取提交信息
commit_message="${{ github.event.head_commit.message }}"
title=$(echo "$commit_message" | cut -d ' ' -f 3-)
if [ -z "$title" ]; then
# 使用正则表达式提取标题内容
release_name=$(echo "$commit_message" | grep -oP 'Release="\K[^"]+')
if [ -z "$release_name" ]; then
echo "未在提交信息中找到 Release 标题。"
title="default_title"
release_name="default_release_name"
fi
# 使用新语法设置输出
echo "title=$title" >> $GITHUB_OUTPUT
echo "title=$title"
- name: 获取最终Release信息
run: |
echo "Repo_Name = ${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}"
echo "Repo_Url = ${{ steps.ActionEnv.outputs.ENV_REPO_URL }}"
echo "Tag_Name = ${{ steps.extract_version.outputs.version }}"
echo "Release_Name = ${{ steps.parse-release.outputs.title }}"
echo "Release_version = ${{ steps.extract_version.outputs.version }}"
echo "Version = ${{ steps.extract_version.outputs.version }}"
echo "Repo = ${{ github.server_url }}/${{ github.repository }}"
echo "TagName = ${{ steps.extract_version.outputs.version }}"
echo "ReleaseName = ${{ steps.parse-release.outputs.release_name }}"
echo "Body = ${{ steps.get-commit-log.outputs.commit_log }}"
- name: 创建Gitea发布
uses: https://git.linuxacme.com/iorebuild/gitea-release-action@main
uses: https://gitea.com/actions/gitea-release-action@main
with:
gitea_token: ${{ secrets.AUTOGENERATE }}
gitea_instance_url: ${{ steps.ActionEnv.outputs.ENV_SERVER_URL }}
repository: ${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}
name: ${{ steps.parse-release.outputs.title }}
gitea_instance_url: ${{ github.server_url }}
repository: ${{ github.repository }}
release_name: ${{ steps.parse-release.outputs.release_name }}
tag_name: ${{ steps.extract_version.outputs.version }}
body: |
${{ steps.get-commit-log.outputs.commit_log }}
draft: false
prerelease: false
files: |
${{ steps.output-md5-file.outputs.md5_result }}
${{ 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:
# 工作在ubuntu-latest系统中
runs-on: ubuntu-latest
# 以下是steps
steps:
- name: 检出仓库
uses: https://git.linuxacme.com/iorebuild/checkout@v4
with:
fetch-depth: 0
# 启用子模块支持
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: 检查环境变量
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
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: 如果有README文件存在则删除掉
run: |
if [ -f "README.md" ]; then
rm README.md
echo "README.md has been removed."
else
echo "README.md does not exist."
fi
- name: 获取所有Release信息
id: fetch-releases
run: |
# 使用 Gitea API 获取所有 Release 信息
RepoInfo=${{ steps.ActionEnv.outputs.ENV_SERVER_URL }}/api/v1/repos/${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}/releases
echo "$RepoInfo"
# 发送请求获取所有 release 信息,添加认证信息
Releases=$(curl -s -H "Authorization: token ${{ secrets.AUTOGENERATE }}" "$RepoInfo")
echo "$Releases"
# 检查是否成功获取信息
if [ -z "$Releases" ]; then
echo "Failed to fetch Releases."
exit 1
fi
# 生成 Markdown 内容
markdown_content="# $PROJECT_NAME\n\n"
markdown_content+="### Develop Tools\n\n"
markdown_content+=" $DEVELOP_TOOLS\n\n"
markdown_content+="### Compiler Version\n\n"
markdown_content+=" $COMPILER\n\n"
# 使用 jq 直接解析 JSON 并处理
while IFS= read -r row; do
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 格式的时间转换为指定格式
formatted_time=$(date -d "$published_at" +"Release at: %Y-%m-%d %H:%M:%S")
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: 提交和推送代码
run: |
git add README.md
git commit -m "Update README.md"
git push https://${{ secrets.AUTOGENERATE }}@git.linuxacme.com/${{ steps.ActionEnv.outputs.ENV_REPO_NAME }}
files: ${{ steps.find-bin-files.outputs.bin_files }}

Binary file not shown.

Binary file not shown.

Binary file not shown.

164
README.md
View File

@ -1,161 +1,3 @@
# 私有仓库Action测试
### 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测试文档标题
## 版本发布记录
- **1.0** (2025-04-10): 1.0 Create README with commit history