用途
该技能面向 GitHub Actions 的配置与优化,当用户提出“添加 CI”“设置 GitHub Actions”“创建工作流”“部署工作流”“自动化测试”“CI/CD 流水线”等需求时使用。其特点是对没有 CI 的仓库进行主动检测,并在发现缺少工作流时询问用户是否添加基础 CI。
主要能力
- 主动检测:在项目开始时检查是否存在
.github/workflows/目录,若不存在则提示用户。 - 知识更新:生成工作流前通过 WebSearch 获取最新文档,包括当前 action 版本(checkout、setup-node、setup-python、setup-go)、最新 Node.js LTS 版本以及近期最佳实践更新。模板中的版本会记录最后复核日期,若超过约 3 个月需重新验证。
- 技术栈检测:识别 Node.js、Python、Go 项目,并通过锁文件判断包管理器(pnpm、bun、npm)及对应安装命令,同时从
.nvmrc或package.json的 engines 字段读取 Node 版本。 - 脚本分析:读取
package.json,检测 lint、typecheck、test、build、test:coverage 等脚本,据此决定工作流包含哪些步骤。 - 工作流选择:根据检测到的技术栈提供选项,如 Node.js 的基础 CI、GitHub Pages 部署、标签发布、安全扫描、覆盖率上传;Python 的基础 CI(ruff、pyright/mypy、pytest)与覆盖率上传;Go 的基础 CI(go vet、golangci-lint、go test)与二进制发布。选择时遵循启发式规则,避免过度询问。
- 生成工作流:从
references/加载模板并替换占位符(如{{NODE_VERSION}}、{{PACKAGE_MANAGER}}、{{INSTALL_COMMAND}}、{{BRANCH}}、{{SCRIPTS}}),始终包含并发控制、依赖缓存和失败快速策略。 - 改进现有工作流:读取已有工作流并分析反模式,如过时的 action 版本、setup-node 缺少缓存、使用 npm install 而非 npm ci、缺少并发控制、单版本矩阵、第三方 action 固定到 @main 等,并给出修复建议。
- 验证:生成后可用 actionlint 校验 YAML,检查所需权限(GitHub Pages 需要 pages: write、id-token: write;发布需要 contents: write;PR 需要 pull-requests: write),并展示创建/更新工作流的摘要、触发条件、任务和后续步骤。
使用方式
技能按阶段执行:Phase 0 知识更新,Phase 1 技术栈检测,Phase 2 脚本分析,Phase 3 工作流选择,Phase 4 生成工作流,Phase 5 改进现有工作流,Phase 6 验证。模板包括 nodejs-ci.yml、nodejs-deploy-pages.yml、nodejs-release.yml、python-ci.yml、go-ci.yml、security.yml。并发控制模板为:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
该配置会取消过时的 PR 运行,但不会取消主分支运行。分支检测命令为:
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@'
适用场景
适用于需要为 Node.js、Python、Go 项目添加或优化 GitHub Actions 工作流的开发者,尤其是希望快速搭建基础 CI、部署到 GitHub Pages、按标签发布、执行安全扫描或上传测试覆盖率的场景。
限制
资料未提供该技能的收费、价格、平台支持范围或具体效果保证。部分行为依赖 WebSearch 获取最新信息,若无法联网可能影响版本更新。模板版本需定期复核,超过约 3 个月需重新验证。