# infra 使用说明(I-02 · 本仓 CI + 备份) 本目录只收本仓(vscode-workbench)基建,不碰各项目仓、不含任何密钥。 ## backup.sh(备份) ```bash bash infra/backup.sh # → backups/planning-backup-YYYYMMDD-HHMMSS.tar.gz + .sha256 ``` - 内容:`PLANNING/` + `docs/e2e-proof/`(任务资产 + 验证证据)。 - 不含:`(服务器数据)`、`docker.env`、任何 key(见 `.gitignore`,`backups/` 不入库)。 - 保留:最近 7 个归档自动轮转。 ## restore.sh(恢复演练) ```bash bash infra/restore.sh backups/planning-backup-.tar.gz # → sha256 校验 → 解到临时目录 → 断言 00/02 + C-03 证据存在 → 清理 ``` 2026-09-14 实测:`planning-backup-20260914-034448.tar.gz` → `restore: OK`。 ## CI - `.gitea/workflows/planning-ci.yml`:push/PR 触发,跑 `tasks.py list/status/collect` + `pytest tools/test_ci_smoke.py`(3 用例)。无私有凭据,Gitea Actions 与 GitHub Actions 均可直接用。 - 四项目 CI 现状:DSP 已有 `.github/workflows/ci.yml`(backend+web+android); chunyu/english-drill/dealerhub 暂无 workflow——由各仓自行落地,本仓不代写。 ## 回滚 - 本仓基建全是新增文件,回滚即删:`infra/`、`.gitea/`、`PLANNING/tools/test_ci_smoke.py`、 `docs/e2e-proof/`、`PROGRESS_S-02/I-02`。 - 备份归档在本地 `backups/`(git 忽略),删仓前拷一份即走。