feat(M4): S-02部署基线复核+I-02本仓CI与备份演练+储备评审;M3遗留C-03/S-01/C-04证据补齐;12项PROGRESS归属+collect解析修复
vscode-planning-ci / planning-smoke (push) Failing after 1m31s
vscode-planning-ci / planning-smoke (push) Failing after 1m31s
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# 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-<stamp>.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 忽略),删仓前拷一份即走。
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# I-02 本仓备份脚本:打包 PLANNING(任务资产)+ docs/e2e-proof(验证证据)→ 带 sha256 的归档。
|
||||
# 不含任何密钥:只收 PLANNING + docs/e2e-proof;(服务器数据)/.env/docker.env 一律不碰。
|
||||
set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
STAMP="$(date +%Y%m%d-%H%M%S)"
|
||||
OUT_DIR="$ROOT/backups"
|
||||
mkdir -p "$OUT_DIR"
|
||||
ARCHIVE="$OUT_DIR/planning-backup-$STAMP.tar.gz"
|
||||
tar -czf "$ARCHIVE" -C "$ROOT" PLANNING docs/e2e-proof
|
||||
sha256sum "$ARCHIVE" > "$ARCHIVE.sha256"
|
||||
# 保留策略:只留最近 7 个归档
|
||||
ls -1t "$OUT_DIR"/planning-backup-*.tar.gz 2>/dev/null | tail -n +8 | xargs -r rm -f
|
||||
ls -1t "$OUT_DIR"/planning-backup-*.tar.gz.sha256 2>/dev/null | tail -n +8 | xargs -r rm -f
|
||||
echo "backup: $ARCHIVE"
|
||||
cat "$ARCHIVE.sha256"
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# I-02 本仓恢复演练:校验归档 → 解到临时目录 → 断言关键文件存在 → 清理。
|
||||
set -euo pipefail
|
||||
ARCHIVE="${1:?用法: restore.sh <archive.tar.gz>}"
|
||||
TMP="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMP"' EXIT
|
||||
sha256sum -c "$ARCHIVE.sha256"
|
||||
tar -xzf "$ARCHIVE" -C "$TMP"
|
||||
test -f "$TMP/PLANNING/02-任务总表.md"
|
||||
test -f "$TMP/PLANNING/00-全局路线图.md"
|
||||
test -f "$TMP/docs/e2e-proof/C-03-timeout-proof.png"
|
||||
echo "restore: OK ($ARCHIVE → $TMP)"
|
||||
ls "$TMP/PLANNING" | head -5
|
||||
Reference in New Issue
Block a user