Skip to content
CI Bot edited this page Aug 24, 2026 · 1 revision

CI/CD 与文档同步

流水线阶段

security → build → deploy → e2e → sync → release

  • security:Bandit、依赖审计、Semgrep、Gitleaks 等安全门禁。
  • build:前端构建、后端 pytest、鸿蒙端编译。
  • deploy:在受控 Runner 上部署并执行健康检查。
  • e2e:使用浏览器级 E2E 验证真实前后端组合。
  • sync:镜像代码仓库至 GitHub,并把 GitLab Wiki 同步至 GitHub Wiki。
  • release:满足版本条件时发布版本与标签。

GitLab Wiki → GitHub Wiki

sync_wiki_to_github 仅在 main 分支 push 流水线运行,并位于 sync 阶段,因此部署与 E2E 失败会阻断同步。作业执行方式如下:

  1. 使用 CI_JOB_TOKEN 克隆 ${CI_PROJECT_PATH}.wiki.git,GitLab Wiki 是唯一来源。
  2. 使用 GitLab 受保护、脱敏变量 GITHUB_PUSH_TOKEN 克隆 CodeFuckee/botler.wiki.git
  3. 以 GitLab Wiki 的页面和附件更新 GitHub Wiki,产生普通提交。
  4. 普通 push 到 GitHub Wiki 的 master,不使用 force push;GitHub 端有独立冲突时作业失败以避免静默覆盖。

首次启用前,需要在 GitHub 仓库 Settings → Features 打开 Wiki,并配置具有 Wiki 写权限的 GITHUB_PUSH_TOKEN。未配置 Token 或目标 Wiki 不存在会明确让 Job 失败,便于及时修复权限或初始化问题。

代码镜像

现有 sync_to_github 将代码仓库同步到 CodeFuckee/botlermain,并剔除 GitLab 专用配置、脱敏内部地址;它与 Wiki 同步是两个独立 Job。

Clone this wiki locally