SuperAPI AI 工具集

github-actions

部署与运维

查看项目

更新于 10-16 06:08

技能介绍

用途

该技能面向 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 个月需重新验证。