SuperAPI AI 工具集

ln-732-cicd-generator

部署与运维

查看项目

更新于 10-15 16:29

技能介绍

用途

ln-732-cicd-generator 是一个 L3 工作单元(Worker),属于 7XX Project Bootstrap 分类。它用于为项目生成 GitHub Actions CI 流水线,实现自动化测试与校验。

该技能明确只做一件事:生成 .github/workflows/ci.yml,其中包含 lint、test、build、docker 等任务。它不做部署配置、不管理密钥、不设置 CD 流水线。

主要能力

技能根据项目技术栈选择模板并生成 CI 配置。模板分为两类:

  • 检测到 .sln 或 .csproj 时,使用 github_ci_dotnet.template.yml
  • 检测到 requirements.txt 或 pyproject.toml 时,使用 github_ci_python.template.yml

命令检测方式:

  • 前端:读取 package.json 中的 lint、build、test 脚本
  • .NET:标准 dotnet restore/build/test
  • Python:pip install、ruff lint、pytest

使用方式

技能按以下阶段执行:

  1. 技术栈分析:确定使用哪个模板,并检测版本与命令。
  2. 变量替换:替换模板变量,包括 {{NODE_VERSION}}(默认 22)、{{DOTNET_VERSION}}(默认 9.0.x)、{{PYTHON_VERSION}}(默认 3.12)、{{FRONTEND_PATH}}(默认 src/frontend)。
  3. 目录创建:若 .github/workflows/ 不存在则创建。
  4. 文件生成:从所选模板生成 ci.yml,检查是否已存在(覆盖前给出警告),应用变量替换,写入 .github/workflows/ci.yml,并校验 YAML 语法。

生成的流水线结构

包含三个任务:

  • frontend:对 React/Vite 执行 lint、build、test,无依赖。
  • backend:构建并测试 .NET 或 Python,无依赖。
  • docker:构建镜像并做健康检查,依赖 frontend 与 backend。

前端任务步骤:检出代码、安装带缓存的 Node.js、安装依赖(npm ci)、运行 linter(npm run lint)、构建(npm run build)、运行测试(npm test)。

后端 .NET 任务步骤:检出代码、安装 .NET SDK、还原依赖(dotnet restore)、构建(dotnet build)、运行测试(dotnet test)。

后端 Python 任务步骤:检出代码、安装带 pip 缓存的 Python、安装依赖(pip install -r requirements.txt)、运行 linter(ruff check)、运行测试(pytest)。

Docker 任务步骤:检出代码、构建镜像(docker compose build)、启动容器(docker compose up -d)、等待启动(30 秒)、前端健康检查(端口 3000)、后端健康检查(端口 5000/8000)、失败时显示日志、停止容器(docker compose down)。

触发事件:push 到 main、develop 分支;pull request 到 main 分支。

应用的最佳实践

  • 依赖缓存:npm cache、pip cache
  • 版本固定:actions/checkout@v4、setup-node@v4
  • 并行任务:frontend 与 backend 并行运行
  • 快速失败:docker 任务等待两者都成功
  • 清理:docker compose down 始终执行
  • 调试支持:失败时显示日志

质量要求

生成的流水线必须通过 YAML 语法校验、使用固定的 action 版本(不用 @latest)、包含依赖缓存、为 docker 任务提供健康检查、并在完成时清理资源。

限制与注意事项

  • 仅支持 GitHub Actions:不支持 Azure 或 GitLab。
  • 基于模板:使用 references/ 中的模板,不要硬编码工作流内容。
  • 幂等:检查 .github/workflows/ 是否存在,覆盖 ci.yml 前给出警告。
  • 版本检测:使用检测到的版本,而非硬编码默认值。

参考文件包括 github_ci.template.yml(带注释的完整模板)、github_ci_dotnet.template.yml(紧凑 .NET 模板)、github_ci_python.template.yml(紧凑 Python 模板)。

完成标准:生成 .github/workflows/ci.yml 并通过 YAML 校验;流水线包含 lint、build、test 和 docker 任务;所有 action 版本固定(不用 @latest)。版本 1.1.0,最后更新于 2026-01-10。