GitHub Action Workflow 分析
2026/3/4大约 3 分钟
GitHub Action Workflow 分析
运行状态
最近一次运行结果
- 状态:成功 (succeeded)
- 总运行时间:2分15秒
- 运行步骤:
- ✅ Set up job (3s)
- ✅ Checkout (1m 33s)
- ✅ 设置 Node.js (5s)
- ✅ 安装依赖 (8s)
- ✅ 构建文档 (19s)
- ✅ 部署文档 (3s)
- ✅ Post 设置 Node.js (1s)
- ✅ Post Checkout (0s)
- ✅ Complete job (0s)
Workflow 配置分析
触发条件
on:
push:
branches:
- main
paths:
- 'src/**'
- 'package.json'
- 'package-lock.json'- 触发分支:仅在
main分支 - 触发路径:仅当修改了
src/**、package.json或package-lock.json时
权限设置
permissions:
contents: write- 权限:设置了
contents: write权限,用于部署到gh-pages分支
运行环境
runs-on: ubuntu-latest- 环境:使用最新的 Ubuntu 环境
运行步骤
Checkout:
- 使用
actions/checkout@v4 - 设置
fetch-depth: 0,确保获取完整的 git 历史
- 使用
设置 Node.js:
- 使用
actions/setup-node@v4 - 设置 Node.js 版本为 22
- 启用 npm 缓存
- 使用
安装依赖:
- 启用 corepack
- 使用
npm ci --legacy-peer-deps安装依赖
构建文档:
- 设置
NODE_OPTIONS: --max_old_space_size=8192,增加 Node.js 内存限制 - 运行
npm run docs:build构建文档 - 创建
.nojekyll文件,避免 GitHub Pages 使用 Jekyll 处理
- 设置
部署文档:
- 使用
JamesIves/github-pages-deploy-action@v4 - 部署到
gh-pages分支 - 部署目录为
src/.vuepress/dist
- 使用
分析结果
正常运行的指标
- 成功完成所有步骤:所有 9 个步骤都成功执行
- 合理的运行时间:总运行时间为 2 分 15 秒,其中:
- Checkout 步骤耗时较长(1m 33s),这是正常的,因为需要克隆仓库
- 构建文档步骤耗时 19s,速度合理
- 部署步骤仅耗时 3s,速度很快
- 配置合理:
- 触发条件设置正确,仅在必要时运行
- 权限设置适当,仅授予必要的写入权限
- 依赖安装使用
npm ci,确保依赖版本的一致性 - 构建时增加了内存限制,避免构建过程中内存不足
- 部署配置正确,指向正确的分支和目录
潜在优化点
Checkout 时间:
- 可以考虑使用
actions/checkout@v4的persist-credentials: false选项,减少不必要的凭据存储 - 对于大型仓库,可以考虑使用
fetch-depth: 1减少克隆时间,但可能会影响某些需要完整历史的操作
- 可以考虑使用
依赖安装:
- 可以考虑使用缓存机制,进一步加快依赖安装速度
- 例如使用
actions/cache缓存node_modules目录
构建过程:
- 可以考虑使用并行构建,加快构建速度
- 对于大型项目,可以考虑使用增量构建
结论
GitHub Action Workflow 运行状态正常,配置合理,执行效率良好。所有步骤都成功完成,运行时间在合理范围内。
建议
- 保持当前配置:当前的配置已经很好地满足了部署需求
- 定期更新 Action 版本:确保使用最新版本的 GitHub Actions,以获得最佳性能和安全性
- 监控运行时间:定期检查构建和部署时间,及时发现潜在的性能问题
后续行动
- 验证部署结果:访问 https://shyu216.github.io/knownoevil/ 确认部署成功
- 测试 PWA 更新机制:验证我们之前配置的
hint模式是否正常工作 - 记录部署时间:建立部署时间基准,以便未来对比优化效果
