164 lines
3.9 KiB
Markdown
164 lines
3.9 KiB
Markdown
# Workflow
|
||
|
||
本目录包含 Gitea Actions 的自动化工作流示例,展示如何使用 Gitea Actions 实现 CI/CD 自动化。
|
||
|
||
---
|
||
|
||
## 📂 文件结构
|
||
|
||
```txt
|
||
.gitea/workflows/
|
||
├── changelog-and-release.yml # CHANGELOG 生成 + Release 创建
|
||
├── update_stats_badge.yml # 代码行数的统计
|
||
└── ... # 更多 workflow 待添加
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 功能列表
|
||
|
||
### ✅ 已实现
|
||
|
||
#### 1. 📦 自动发布工作流 (`changelog-and-release.yml`)
|
||
|
||
**功能**:在推送 tag 时自动生成 CHANGELOG 并创建 Release
|
||
|
||
**特性**:
|
||
|
||
- 🏷️ 自动识别语义版本号(SemVer)
|
||
- 📝 智能生成 CHANGELOG 条目
|
||
- 🔄 支持多个开发版本内容叠加
|
||
- 👥 自动提取贡献者列表
|
||
- 🚀 创建 GitHub/Gitea Release
|
||
- 📎 上传附件到 Release
|
||
- 🏷️ 自动识别 Pre-release 标记
|
||
|
||
**触发方式**:
|
||
|
||
```bash
|
||
git tag 1.0.0
|
||
git push origin 1.0.0
|
||
```
|
||
|
||
**文件**:[changelog-and-release.yml](.gitea/workflows/changelog_and_release.yml)
|
||
|
||
💡 **详细配置**:查看 `changelog-and-release.yml` 文件顶部的 `env` 区域,所有配置项都有详细注释说明
|
||
|
||
---
|
||
|
||
#### 2. 📊 代码统计徽章工作流 (`update-stats-badge.yml`)
|
||
|
||
**功能**:自动统计代码行数并生成徽章数据
|
||
|
||
**特性**:
|
||
|
||
- 📈 统计总代码行数和文件数
|
||
- 🌐 按语言分组统计
|
||
- 🎨 自动生成徽章 JSON 数据
|
||
- 📊 生成统计摘要(JSON 格式)
|
||
- 🚫 灵活的目录排除配置
|
||
|
||
**触发方式**:
|
||
|
||
```bash
|
||
# 推送到主分支时自动触发
|
||
git push origin main
|
||
|
||
# 手动触发
|
||
# 仓库 → Actions → Update Code Statistics Badge → Run workflow
|
||
```
|
||
|
||
**配置文件**:[update-stats-badge.yml](.gitea/workflows/update_stats_badge.yaml)
|
||
|
||
**markdown引用格式**: ``
|
||
|
||
💡 **详细配置**:查看 `update-stats-badge.yml` 文件顶部的 `env` 区域,包含语言分组、颜色、排除目录等配置
|
||
|
||
---
|
||
|
||
### 🔜 待扩展
|
||
|
||
更多自动化场景:
|
||
|
||
- 🧪 **自动测试** - 推送代码时运行单元测试
|
||
- 🏗️ **自动构建** - 构建并发布 Docker 镜像
|
||
- 📊 **代码质量** - 运行代码检查和静态分析
|
||
- 🌐 **自动部署** - 部署到生产环境
|
||
- 📧 **通知集成** - 发送构建结果到 Slack/邮件
|
||
- 🔐 **安全扫描** - 依赖漏洞扫描
|
||
|
||
---
|
||
|
||
## ❓ 常见问题
|
||
|
||
### Q1: 如何配置 Token?
|
||
|
||
**步骤**:
|
||
|
||
1. Gitea → 设置 → 应用 → 生成新令牌
|
||
2. 权限:勾选 **repo**
|
||
3. 仓库 → Settings → Actions → Secrets → 添加 Secret
|
||
4. 名称:`WORKFLOW`,值:你的 Token
|
||
|
||
💡 **提示**:一个 Token 即可完成所有操作(Git + API)
|
||
|
||
---
|
||
|
||
### Q2: `changelog_and_release` 没有触发?
|
||
|
||
**检查清单**:
|
||
|
||
- [ ] Workflow 文件在 `.gitea/workflows/` 目录
|
||
- [ ] 文件名正确(如 `changelog-and-release.yml`)
|
||
- [ ] Token 已正确配置(Secret 名称为 `WORKFLOW`)
|
||
- [ ] Tag 格式正确(数字开头,如 `1.0.0`)
|
||
- [ ] Gitea Actions 已启用
|
||
- [ ] Runner 正常运行
|
||
|
||
---
|
||
|
||
### Q3: `changelog_and_release` 版本号格式有要求吗?
|
||
|
||
推荐使用**语义化版本号(SemVer)**:
|
||
|
||
```bash
|
||
✅ 推荐格式:
|
||
1.0.0 # 正式版本
|
||
1.0.0-beta1 # 预发布版本
|
||
|
||
❌ 不推荐:
|
||
v1.0.0 # 不要使用 v 前缀
|
||
1.0.0-b1 # 后缀要完整
|
||
```
|
||
|
||
详细规范请参考 workflow 文件中的注释说明。
|
||
|
||
---
|
||
|
||
### Q4: 如何查看执行日志?
|
||
|
||
仓库 → Actions → 点击对应的 workflow 运行记录 → 查看详细日志
|
||
|
||
---
|
||
|
||
### Q5: Token 权限不足怎么办?
|
||
|
||
确保 Token 具有以下权限:
|
||
|
||
- ✅ **repo** - 完整仓库访问权限
|
||
- 用于读取代码
|
||
- 用于推送提交
|
||
- 用于创建 Release
|
||
|
||
如果还是失败,尝试重新生成 Token。
|
||
|
||
---
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎提交更多实用的 Workflow 示例!
|
||
|
||
---
|
||
|
||
## 📄 许可 MIT
|