chore: gate memind_adm gray release candidates
This commit is contained in:
+27
-2
@@ -83,10 +83,35 @@ nginx 示例见 `scripts/gadm-nginx.conf.example`(`/ops/` → preview,`/auth
|
||||
## 唯一入口
|
||||
|
||||
```bash
|
||||
bash scripts/release-prod.sh --dry-run
|
||||
# 只生成持久候选包;不连接、不修改 103
|
||||
TEST_MEMIND_ROOT=<clean-Memind-worktree> \
|
||||
IMAGE_MAKE_RELEASE_ID=20260720-standalone-rc1 \
|
||||
bash scripts/release-prod.sh --package-only
|
||||
|
||||
# 候选包生成后,只读检查 103 灰度前置条件
|
||||
bash scripts/check-gray-ready.sh --candidate-dir release-candidates/<release-id>
|
||||
|
||||
# 正式生产发布;必须在灰度通过并得到明确许可后执行
|
||||
bash scripts/release-prod.sh
|
||||
```
|
||||
|
||||
`--dry-run` 是 `--package-only` 的兼容别名。候选包默认保存在
|
||||
`release-candidates/<release-id>/`,包含 tar 包、manifest 和 SHA-256 校验文件。
|
||||
|
||||
发包时 `Memind` 共享源码必须满足:
|
||||
|
||||
1. 是 Git 工作区且完全干净。
|
||||
2. `HEAD` 精确匹配 `MEMIND_BASE_REF`(默认 `origin/main`)。
|
||||
3. 包含 `asset-gateway.mjs`、`image-make-admin-config.mjs`、`image-make-client.mjs`。
|
||||
4. manifest 明确记录 `IMAGE_MAKE_RELEASE_ID`,避免后台候选与错误的 image_make 版本配套。
|
||||
|
||||
灰度分两层:
|
||||
|
||||
1. `check-gray-ready.sh` 默认只做后台候选包、103 当前健康状态、灰度端口和 image_make 版本的只读预检。
|
||||
2. `--require-image-integration` 额外要求 Portal runtime-config 路由、image_make 配置 URL 和 worker 均已就绪。该条件涉及生产运行态,未经单独许可不得开启。
|
||||
|
||||
`release-prod.sh` 没有“灰度即生产”的隐式行为:不带 `--package-only` 时就是正式 live 原子切换,必须等灰度验收通过后再执行。
|
||||
|
||||
## 产物发布流程
|
||||
|
||||
1. 本地生成 `memind-adm-<release-id>.tar.gz` 和发布清单。
|
||||
@@ -94,7 +119,7 @@ bash scripts/release-prod.sh
|
||||
3. 103 备份当前 `/Users/john/Project/memind_adm` 为时间戳压缩包。
|
||||
4. 在 `/Users/john/Project/releases/` 下解包新版本。
|
||||
5. 从当前 live 目录继承运行态配置与日志文件。
|
||||
6. 在 release 目录安装依赖、构建。
|
||||
6. 在 release 目录安装锁定依赖;前端 `dist/` 已在本地构建完成,103 不执行前端构建。
|
||||
7. 原子切换 `memind_adm` live 目录。
|
||||
8. 调用 `scripts/remote_restart.sh` 重启 `8085` 和 `5174`。
|
||||
9. 检查 `127.0.0.1:8085/health` 与 `127.0.0.1:5174/`。
|
||||
|
||||
Reference in New Issue
Block a user