ci(release): Add Gitea Actions workflow and release configuration
Publish Release / publish (push) Has been cancelled
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:
1 parent
083fa0e2f9
commit
31d5875425
3 files changed
+137
-7
No files matched your search
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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
@@ -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 用户设置 -> 应用 -> 管理访问令牌中创建
|
||||||
Reference in new issue
Block a user