dev-manager-tauri/.blueprint/modules/cicd-workflow.md
lanrtop 806205b8b0
All checks were successful
Push & PR Check / check (push) Successful in 1m0s
Push & PR Check / check (pull_request) Successful in 58s
feat(cicd): add safe agent workflow projection
Add preview-and-apply workflow commands with digest confirmation, project boundary checks, and MCP/Tauri projections. Sync onboarding capability packs and Codex skill guidance.

Feature-Confirmed: true

Rules-Applied: R01,R02,R06,R07,R12,R13
2026-09-22 23:27:34 +09:00

4.2 KiB
Raw Blame History

id name status progress
cicd-workflow CI/CD 工作流 done 100

概述

CI/CD 配置管理和 GitHub Actions Workflow 文件生成。支持两种部署类型:Web SSH 部署和 Tauri OSS 分发。 完整部署教程见 docs/tauri-cicd-guide.md。

✅ 改造完成(2026-07-02):generate_workflow 已产出 Gitea Actions 模板(.gitea/workflows/), 炼境自身发版链路经本机 act_runner 实测跑通(v0.1.16 上线 OSS,见 gitea-integration R0 复盘)。 「Actions 运行历史」待 PR/CI 事件联动落地后按 Gitea 事实源重建(concept 卡在 gitea-integration)。

本机 CI runner 速查(2026-09-11 自 Claude 私有记忆回流;CI 排障先读这里)

  • 拓扑:公网 Gitea + 内网本机 runner(出站拉任务,无需入站)
  • 安装位置:C:\Users\yangzhixiang\act_runner\(act_runner.exe v0.2.13 + config.yaml + .runner + runner.log)
  • 注册身份:lianjing-win,标签 windows:host(host 模式,直接用本机工具链)
  • 关键配置(config.yaml):docker_host: "-" + labels: ["windows:host"]——默认生成的 docker labels 会导致 daemon 拒启
  • 启动:act_runner.exe daemon -c config.yaml;开机自启靠启动文件夹 act_runner.vbs(隐藏窗口,日志追加 runner.log)
  • 排障:日志级别 trace 时 step 输出全落 runner.log,可直接定位构建失败;工作目录 C:/Users/yangzhixiang/act_runner/work
  • Gitea 1.22.6 无 /actions/runs REST API:查 CI 结果用 GET /repos/{o}/{r}/commits/{sha}/statuses;迁移创建的仓库默认关 Actions 单元(PATCH /repos/{o}/{r} {"has_actions":true} 开启)
  • 签名密钥:~/.tauri/dev-manager-tauri.key(2026-07-02 换钥,旧钥 .old-locked 备份),密码双写 Gitea Secrets + 炼境密钥凭据库(密钥类 secret 单一存储 = 定时炸弹)

任务卡

✅ CI/CD 配置 CRUD

  • status: done
  • files: src-tauri/src/commands/cicd.rs, src/components/dashboard/CicdModal.tsx

保存和读取 CI/CD 配置(部署类型、触发分支、构建命令等)。

✅ Workflow 文件生成

  • status: done
  • files: src-tauri/src/commands/cicd.rs

根据配置自动生成 .github/workflows/ 下的 YAML 文件。

✅ Web SSH 部署模板

  • status: done
  • files: src-tauri/src/commands/cicd.rs

生成基于 appleboy/ssh-action 的部署 workflow。

✅ Tauri OSS 分发模板

  • status: done
  • files: src-tauri/src/commands/cicd.rs

生成 Tauri 构建 + 签名 + 阿里云 OSS 上传的 release workflow。

✅ Actions 运行历史

  • status: done
  • files: src/components/dashboard/CicdModal.tsx

查看 GitHub Actions 运行状态,支持手动触发。

⚠️ 已随 github-decommission(2026-07-02)移除,仅作历史记录;Gitea Actions 接入后按新事实源重建。

✅ T10. CI/CD 能力的 Agent 安全投影

  • status: done
  • complexity: M
  • files: src-tauri/src/commands/cicd.rs, src-tauri/src/mcp_tools.rs, src-tauri/src/models.rs, src-tauri/src/lib.rs, src/lib/commands.ts, docs/ai-context/project-context.yaml, .agents/skills/lian-jing/SKILL.md, src-tauri/resources/onboarding/.agents/skills/lian-jing/SKILL.md, src-tauri/resources/onboarding/.lian-jing/capability-packs.json, .lian-jing/capability-packs.json, plugins/lian-jing-codex/.codex-plugin/plugin.json, plugins/lian-jing-codex/skills/lian-jing/SKILL.md
  • acceptance: "agent_verify: [cargo test] plan_cicd_workflow(project_id, workflow_type) 返回目标文件、工具链来源、required_secrets、change 与 content_digest,且磁盘零写入;apply_cicd_workflow 在 confirmed=false、摘要不一致、未知项目、配置缺失、路径越界或工具链冲突时零写入并返回证据,只有 confirmed=true 且摘要匹配时写入预览对应的 .gitea/workflows/ 文件;[MCP schema] 支持 pr_ci/deepseek_review/web_ssh/tauri_oss,不暴露密钥值、任意命令或远程执行参数;cargo test --lib、pnpm typecheck、git diff --check 通过,pnpm-lock.yaml 无改动。"
  • decision_note: "保留 distribute_cicd 作为 pr_ci/deepseek_review 兼容入口;部署类 workflow 只开放 plan/apply,两阶段确认仅写项目文件,不触发 Gitea Actions、SSH、部署、回滚或 migration。"