Skip to content

feat: 添加 GitHub Actions CI/CD 自动化配置#31

Merged
sansi-lcj merged 11 commits intomainfrom
feature/github-actions
Jan 19, 2026
Merged

feat: 添加 GitHub Actions CI/CD 自动化配置#31
sansi-lcj merged 11 commits intomainfrom
feature/github-actions

Conversation

@sansi-lcj
Copy link
Member

概述

添加完整的 GitHub Actions CI/CD 自动化流程,包括 CI 检查、NPM 自动发布和文档部署。

主要变更

1. CI 工作流 (.github/workflows/ci.yml)

  • ✅ Pull Request 和 push 到 main 时自动运行
  • ✅ Node.js 18 和 20 多版本矩阵测试
  • ✅ 自动构建主包和测试应用验证

2. NPM 发布工作流 (.github/workflows/publish.yml)

  • ✅ 推送版本标签时自动发布到 npm
  • ✅ 支持语义化版本:
    • v*.*.* → npm latest tag
    • v*.*.*-alpha.* → npm alpha tag
    • v*.*.*-beta.* → npm beta tag
    • v*.*.*-rc.* → npm rc tag
  • ✅ 自动创建 GitHub Release
  • ✅ 使用组织级别的 NPM_AUTH_TOKEN

3. 文档部署工作流 (.github/workflows/docs.yml)

  • ✅ push 到 main 或发布新版本时自动部署
  • ✅ 自动生成 TypeDoc 文档
  • ✅ 部署到 GitHub Pages

4. 项目配置更新

  • ✅ 更新 README 添加徽章和发布流程说明
  • ✅ 添加 PR 模板
  • ✅ 添加配置指南 (.github/SETUP.md)
  • ✅ 更新 .gitignore 忽略构建产物
  • ✅ 修正 typedoc.json 路径配置

配置要求

已完成

  • ✅ 组织已配置 NPM_AUTH_TOKEN secret

需要启用

  • ⏳ GitHub Pages: Settings → Pages → Source: GitHub Actions

测试情况

  • ✅ CI 工作流配置完成
  • ✅ 文档构建成功(在 feature 分支上测试通过)
  • ✅ Alpha 版本 v2.6.4-alpha.1 发布流程验证

版本发布流程

合并后,发布新版本的步骤:

# 1. 更新版本号
cd packages/vreo
npm version patch  # 或 minor/major

# 2. 推送代码和 tag
git push origin main
git push origin --tags

# 3. GitHub Actions 自动发布

文件变更

  • .github/workflows/ci.yml - CI 检查工作流
  • .github/workflows/publish.yml - NPM 发布工作流
  • .github/workflows/docs.yml - 文档部署工作流
  • .github/PULL_REQUEST_TEMPLATE.md - PR 模板
  • .github/SETUP.md - 配置指南
  • README.md - 更新说明和徽章
  • .gitignore - 忽略构建产物
  • packages/vreo/typedoc.json - 修正 CSS 路径

注意事项

  • 本 PR 已清理所有构建产物(lib/、docs/)
  • 这些文件将通过 CI/CD 自动生成
  • 合并后首次推送到 main 会触发文档部署

- 添加 CI 工作流,支持 Node.js 18/20 多版本测试
- 添加自动发布工作流,支持语义化版本和预发布版本
- 添加文档自动部署工作流
- 更新 README 添加徽章和发布流程说明
- 添加配置指南和 PR 模板
- 更新 publish.yml 使用 NPM_AUTH_TOKEN 而非 NPM_TOKEN
- 更新文档说明组织已配置 Organization Secret
- 简化配置流程,无需重复配置
- 在生成文档前先构建包,确保类型定义存在
- 添加环境变量防止 CI 中尝试打开浏览器
- 在 CI 环境中创建空的 xdg-open 脚本
- 防止某些包的生命周期脚本尝试打开浏览器
- 添加更多环境变量 (BROWSER, OPEN) 来禁用浏览器打开
- 将 xdg-open 覆盖步骤移到安装依赖之前
- 在 .npmrc 中禁用 fund 和 audit
- 确保任何包的 postinstall 脚本都无法打开浏览器
- pnpm docs 是 pnpm 的内置命令,用于打开包文档页面
- pnpm run docs 才是运行 package.json 中定义的 docs 脚本
- 移除不必要的 xdg-open 覆盖和环境变量设置
- 简化工作流配置
- 从 ./docs-theme/custom.css 改为 ../../docs-theme/custom.css
- typedoc.json 在 packages/vreo/ 目录,需要相对路径指向根目录的 docs-theme
- 本地测试文档生成成功
- 添加 lib/ 目录(构建产物)
- 添加 docs/ 目录(生成的文档)
- 添加 .vite/ 缓存目录
- 移除 packages/vreo/lib/ (构建产物)
- 移除 packages/vreo/docs/ (生成的文档)
- 移除 packages/test-app/node_modules/.vite/ (Vite 缓存)
- 这些文件应该自动生成,不应该提交到 Git
@sansi-lcj sansi-lcj merged commit 550f4e1 into main Jan 19, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments