第4课:CI/CD与HAPI自动化#
为什么需要这个#
当团队共同开发项目时,自动化日常任务很重要:代码检查、构建、发布。HAPI使用 GitHub Actions ——GitHub内置的自动化系统来完成这些工作。
CI/CD(Continuous Integration / Continuous Delivery)——持续集成和持续交付。这是一种在每次代码更改时自动检查和构建的实践。
GitHub Actions 是GitHub的服务,在特定事件(例如有人推送代码或创建pull request)时自动运行任务。
HAPI有哪些自动化#
在 .github/workflows/ 文件夹中有6个文件——每个描述一种自动化:
1. 🧪 测试(test.yml)#
触发时机: 每次push和pull request时。
执行内容:
- 下载代码
- 安装Bun
- 安装依赖(
bun install) - 类型检查(
bun typecheck) - 运行测试(
bun run test)
目的: 确保新代码没有破坏任何东西。
2. 🤖 AI审查PR(codex-pr-review.yml)#
PR(Pull Request) ——请求将更改合并到项目中。其他参与者在接受前审查代码。
触发时机: 当打开新PR或PR从草稿转为就绪状态时。
执行内容:
- AI模型 Codex(GPT-5.2)自动审查PR中的代码
- 留下评论,包含建议和推荐
- 不审查来自机器人的PR和带有
bot-skip标签的PR - 不重复审查——如果机器人已留过评论,不会再次触发
目的: 加速代码审查并捕获常见错误。
3. 💬 自动回复issues(issue-auto-response.yml)#
Issue ——仓库中的工单/任务:Bug报告、功能请求、问题。
触发时机: 当创建新issue或添加标签时。
执行内容:
- Codex分析issue并自动回复
- 跳过重复(
duplicate)、垃圾邮件(spam)和带有bot-skip标签的issues - 只回复一次
目的: 用户更快获得首次回复,开发者无需回答典型问题。
4. 🗣️ 回复提及(codex-mention-response.yml)#
触发时机: 当有人在评论中提及 @tiann 时。
执行内容:
- Codex回答问题或评论
- 仅对具有写入权限(write access)的用户有效
- 不回复自己的评论和带有
bot-skip标签的issues
目的: 在讨论中直接为开发者提供快速帮助。
5. 📦 发布(release.yml)#
发布(Release) ——发布程序的新版本。
触发时机: 当创建新版本标签时(例如 v1.2.3)。
执行内容:
- 为所有平台构建二进制文件
- 打包为归档文件(macOS/Linux用
.tar.gz,Windows用.zip) - 计算校验和(checksums)
- 在GitHub上创建包含下载文件的发布
- 更新Homebrew formula(macOS包管理器)
6. 🌐 部署Web应用(webapp.yml)#
部署(deploy) ——将应用放到服务器上使其可供用户访问。
触发时机: 当 main 分支中 web/ 文件夹有更改时。
执行内容:
- 构建Web应用
- 发布到GitHub Pages(GitHub的免费托管)
- 通过
app.hapi.run地址访问
所有这些如何关联#
开发者提交更改
│
├─► 推送到任何分支
│ └─► test.yml:代码检查和测试
│
├─► 打开PR
│ └─► codex-pr-review.yml:AI审查代码
│
├─► PR合并到main + web/有更改
│ └─► webapp.yml:更新网站
│
├─► 创建标签v1.2.3
│ └─► release.yml:构建+发布
│
└─► 新issue或评论
└─► issue-auto-response.yml / codex-mention-response.ymlbot-skip 标签#
如果你不想让机器人回复特定的issue或PR,添加 bot-skip 标签。所有AI自动化都会检查此标签并跳过这些任务。
课程总结#
- HAPI使用 6种自动化 GitHub Actions来处理日常任务
- 测试 在每次代码更改时自动运行
- AI(Codex) 自动审查PR、回复issues和评论
- 发布 通过创建标签一条命令为所有平台构建
- Web应用 在更改时自动发布
bot-skip标签可以为特定任务禁用AI自动化