Cache dependency downloads by lockfile and preserve Studio runtime checks
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
## 依赖层与源码层
|
||||
|
||||
- Wiki 的根 Dockerfile 是实际 CI 入口,`apps/waterfall-wiki/Dockerfile` 是对应副本,两者的功能内容保持同步;根文件额外保留镜像生命周期标签。
|
||||
- 统一 Web 应用安装前只复制自身清单、锁文件、workspace 配置和品牌包清单,满足 `workspace:*` 依赖发现。完整品牌包在安装后复制;颜色、Logo 或品牌脚本变化仍会重新编译应用,但不会仅因此重新下载依赖。
|
||||
- 统一 Web 应用先根据锁文件与 workspace 配置执行 `pnpm fetch`,再复制清单并 `pnpm install --offline --frozen-lockfile`。修改 scripts 或品牌源码不会使下载层失效;基础镜像、pnpm 版本、平台或配置变化,以及 Docker 缓存清除仍可能要求重新下载。
|
||||
- Python 从 `pyproject.toml` 读取固定运行依赖与构建后端要求,在独立依赖阶段安装。源码阶段安装当前包并运行单测,最终镜像仅继承系统运行环境并复制已验证的虚拟环境,不携带应用源码目录和测试目录。虚拟环境仍包含 pip 和构建后端,未声称完全剥离构建工具。
|
||||
- 品牌包只作为 workspace 依赖随 Web 应用构建,不提供独立 Dockerfile、镜像构建工作流或常驻服务。专用品牌检查已停止自动运行,保留测试脚本供明确需要时在远程执行。
|
||||
- 不因共享包缓存命中而漏掉消费者:品牌变更需触发 统一应用 PR 检查和 main 发布。根忽略规则变化也触发相关检查。
|
||||
|
||||
@@ -10,7 +10,7 @@ Wiki 与 Studio 合并为 `apps/waterfall-wiki` 内一个 Next.js Pages Router
|
||||
|
||||
1. `.gitea/workflows/app.yml` 按应用、品牌、脚本、Docker/Compose 配置路径筛选 main push(含 PR 合并)。文档修改不会部署。
|
||||
2. runner checkout 本次提交,逐文件检查 Shell 语法与内容约定。
|
||||
3. 构建 integration 与 runtime 两个目标。Next.js 的类型检查、单元测试、生产编译、冒烟测试只在共享 build 阶段执行;runtime 复用这一层,不再次编译。运行镜像同供 Web 与 worker 使用。
|
||||
3. 按锁文件缓存 pnpm 下载,复制清单后离线安装;随后构建 integration 与 runtime 两个目标。Next.js 的类型检查、单元测试、生产编译、冒烟测试只在共享 build 阶段执行;runtime 复用这一层,不再次编译。运行镜像同供 Web 与 worker 使用。
|
||||
4. 在锁保护下使用 `prompt-ci-shared` 测试槽位。首次创建专用 PostgreSQL/S3,此后 `--no-recreate` 复用。停止上一轮测试应用,确认数据库容器属于该测试项目后重置测试数据库。本轮使用 `ci-<run_id>` 对象 bucket。
|
||||
5. 启动候选 Web/worker,迁移测试数据库,执行接口、账户、画布、编辑器及浏览器集成验证。失败则停止发布。退出时停止测试应用并删除本轮 bucket,保留基础容器和卷。
|
||||
6. 生产部署先验证 `/etc/prompt.env` 和既有 `prompt` 基础服务,绝不自动生成新凭据或重建 PostgreSQL/S3。检查是否被更新的 main 取代并获取部署锁。
|
||||
|
||||
Reference in New Issue
Block a user