ci(release): Add Gitea Actions workflow and release configuration
Publish Release / publish (push) Has been cancelled

- Add `.gitea/release-config.json` to define conventional commit types and changelog sections
- Add `.gitea/workflows/publish.yml` to automate version bumping, changelog generation, and Windows builds
- Update `AUTOMATED_RELEASE.md` to reflect migration from GitHub Actions to Gitea Actions
- Update documentation to specify Windows-only builds and Gitea Release creation
- Add Gitea Token configuration instructions for repository setup
- Configure workflow to run on main branch pushes with concurrency controls
- Set up automated asset uploads for Windows executables and update files
This commit is contained in:
zhanggy committed 2025-11-19 09:49:21 +08:00
1 parent 083fa0e2f9
commit 31d5875425
3 files changed
+137 -7

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
{
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "docs",
"section": "Documentation"
},
{
"type": "style",
"section": "Styles"
},
{
"type": "refactor",
"section": "Refactoring"
},
{
"type": "perf",
"section": "Performance Improvements"
},
{
"type": "test",
"section": "Tests"
},
{
"type": "build",
"section": "Build System"
},
{
"type": "ci",
"section": "CI"
},
{
"type": "chore",
"section": "Chores"
}
]
}
+80
View File
@@ -0,0 +1,80 @@
name: Publish Release
on:
push:
branches:
- main
# 在同一个工作流中处理发布任务
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
publish:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Configure Git
run: |
git config --global url."https://".insteadOf git://
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
run_install: |
- recursive: true
args: [--frozen-lockfile=false]
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
env:
NPM_CONFIG_LEGACY_PEER_DEPS: true
- name: Setup Git user
run: |
git config --global user.name 'gitea-actions[bot]'
git config --global user.email 'gitea-actions[bot]@users.noreply.gitea.com'
- name: Bump version and generate changelog
shell: bash
run: |
# 根据 commit 信息自动更新版本和生成 changelog
pnpm release
# 获取新版本号
version=$(node -p "require('./package.json').version")
echo "VERSION=$version" >> $GITHUB_ENV
echo "Version set to: $version"
- name: Push changes
run: |
git push origin main
git tag "v${{ env.VERSION }}"
git push origin "v${{ env.VERSION }}"
- name: Build for Windows
run: |
pnpm build:win
env:
# 禁用 Windows 代码签名
WIN_CSC_KEY_PASSWORD: ''
- name: Upload Release Assets
uses: https://gitea.com/actions/release-action@main
with:
files: |
release/**/*.exe
release/**/*.exe.blockmap
release/**/latest.yml
release/**/app-update.yml
+13 -7
View File
@@ -4,15 +4,15 @@
## 工作流程 ## 工作流程
当代码合并到 main 分支后,GitHub Actions 会自动执行以下步骤: 当代码合并到 main 分支后,Gitea Actions 会自动执行以下步骤:
1. 检出代码 1. 检出代码
2. 设置 Node.js 和 pnpm 环境 2. 设置 Node.js 和 pnpm 环境
3. 安装依赖 3. 安装依赖
4. 根据 Git 提交信息自动更新版本号 4. 根据 Git 提交信息自动更新版本号
5. 生成变更日志 (CHANGELOG.md) 5. 生成变更日志 (CHANGELOG.md)
6. 构建应用程序 (所有平台) 6. 构建应用程序 (Windows 平台)
7. 创建 GitHub Release 7. 创建 Gitea Release
8. 上传构建产物 8. 上传构建产物
## 提交信息规范 ## 提交信息规范
@@ -53,10 +53,16 @@ pnpm release:patch # 补丁更新 (1.1.1 -> 1.1.2)
## 配置文件 ## 配置文件
- `.versionrc.json` 或 `package.json` 中的 `standard-version` 配置定义了版本管理和变更日志生成规则 - `.versionrc.json` 或 `package.json` 中的 `standard-version` 配置定义了版本管理和变更日志生成规则
- `.github/workflows/publish.yml` 包含了自动化发布的工作流程定义 - `.gitea/workflows/publish.yml` 包含了自动化发布的工作流程定义
## 重要说明 ## 重要说明
1. 为了使自动化发布正常工作,必须正确配置 GitHub 仓库的 secrets,特别是用于发布构建产物的令牌。 1. 为了使自动化发布正常工作,必须在 Gitea 仓库设置中配置 `GITEA_TOKEN` secret,用于推送代码和创建 Release。
2. 构建过程会生成适用于多个平台(Windows、macOS、Linux)的应用程序包。 2. 构建过程会生成适用于 Windows 平台的应用程序包。
3. 变更日志会自动包含在 GitHub Release 中。 3. 变更日志会自动包含在 Gitea Release 中。
## Gitea Token 配置
在 Gitea 仓库的 Settings -> Secrets 中添加以下 secret:
- `GITEA_TOKEN`: 具有仓库写入权限的访问令牌,可在 Gitea 用户设置 -> 应用 -> 管理访问令牌中创建