actions-template/WORKFLOW.md

164 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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引用格式**: `![C++](https://img.shields.io/endpoint?url=https://你的gitea/用户名/仓库/raw/branch/分支/badges/cpp-lines.json)`
💡 **详细配置**:查看 `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