diff --git a/.gitea/workflows/docs-database-verify.yml b/.gitea/workflows/docs-database-verify.yml deleted file mode 100644 index db91bcf..0000000 --- a/.gitea/workflows/docs-database-verify.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Verify database-backed documents -on: - pull_request: - branches: [main] - workflow_dispatch: - -jobs: - verify: - if: gitea.head_ref == 'codex/database-docs' || (gitea.event_name == 'workflow_dispatch' && gitea.ref == 'refs/heads/codex/database-docs') - runs-on: ces-control - timeout-minutes: 45 - env: - DOCKER_BUILDKIT: "0" - CI_CACHE_SCOPE: pr-${{ gitea.event.pull_request.number || '0' }} - steps: - - uses: actions/checkout@v4 - with: - github-server-url: ${{ gitea.server_url }} - persist-credentials: false - fetch-depth: 0 - - name: Validate migration and runtime without deployment - run: python3 scripts/ci.py diff --git a/AGENTS.md b/AGENTS.md index bc62dc8..c44c3b7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Tabularium working agreements -- 本仓库专门维护 Endor 文档与制图脚本。支持本地开发;CI/CD 使用现有 ces-control Runner,在 main 通过验证后自动部署。不得修改其他项目、共享 Runner 配置或清理共享 Docker 缓存。 +- 本仓库专门维护 Endor 文档与制图脚本。支持本地开发;CI/CD 仅在 main 使用现有 ces-control Runner,验证通过后自动部署;工作分支与 PR 不运行 CI,确认 Runner 不构成扩大触发范围的授权。不得修改其他项目、共享 Runner 配置或清理共享 Docker 缓存。 - Web 技术栈为 TypeScript、React、Tailwind CSS、Next.js Pages Router;不要切换到 App Router。 - 使用 pnpm 管理 JavaScript workspace,使用 uv 管理 `tools/figures` 的 Python 项目,保留两套锁文件。 - 文档正文、目录元数据与修订记录以站点现有 SQLite 数据库为唯一权威源,使用 docs 管理工具直接更新;不得把新正文、目录 JSON、数据库文件或日常内容快照提交到仓库。历史 Git 文档只用于显式的一次性迁移,不作为运行时种子。Python 图形源码放在 `tools/figures/src/endor_figures`,可复现的 SVG 输出放在 `apps/docs/public/figures`。 diff --git a/README.md b/README.md index 4d44add..2f2869a 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ backup 是包含登录、研究、正文、别名和修订的完整 SQLite 一 使用 React、Next.js Pages Router、TypeScript 和 Tailwind CSS。JavaScript 用 pnpm,制图 Python 用 uv。编译、构建、打包和构建产物全部在已确认的 ces-control Runner 执行;`pnpm test:docs` 等测试脚本会调用 esbuild,也只能在 Runner 执行。 -迁移 PR 有专用验证工作流,执行 lint、类型检查、数据库事务/版本测试、现有认证与研究测试、图形检查、构建与容器冒烟,不部署。主线验证通过后才沿用既有部署流程,仍等待用户手动合并 PR。 +工作分支与 PR 不运行 CI,仅做不会触发编译、构建的轻量检查。用户手动合并 main 后,才在 ces-control 执行 lint、类型检查、数据库事务/版本测试、现有认证与研究测试、图形检查、构建与容器冒烟;验证通过才沿用既有部署流程。 冒烟使用隔离数据库卷:完整导入后逐项核对全部正文与目录,验证新建、更新、重命名、搜索立即变化及容器重启后的持久化,并覆盖全部文档地址、认证、媒体和原文端点。测试卷不会触及生产数据库。 @@ -161,7 +161,7 @@ AI 关键词可能出现在业务背景中,收入、买家和交付状态仍 文档内容已退出构建输入。若需对照研究数据检查数据库中的报告正文,可先导出当前文档,再给研究脚本传入 `--document-export`;默认 `--check` 只核对研究数据本身的统计和审计不变量,避免把历史迁移快照继续当作日常正文源。 `.gitea/workflows/ci-deploy.yml` 使用已有 ces-control Runner,不修改共享 Runner 配置。 -部署工作流仅在 main 推送或针对 main 的手动运行时执行。迁移分支 `codex/database-docs` 由独立的 `docs-database-verify.yml` 在 PR 或手动触发时执行完整验证,使用 PR 隔离缓存,不部署;报告须区分未运行与已通过。 +工作流仅在 main 推送或针对 main 的手动运行时执行,工作分支与 PR 不触发 CI。确认 ces-control 是构建位置,不构成新增分支 CI 的授权;报告须区分轻量检查与主线 CI。 1. 对实际构建输入计算 SHA-256:前端源码、图片、Python 制图源码、研究业务快照、依赖锁文件、Dockerfile 和构建脚本。 2. 命中 `verified--<摘要>` 镜像时跳过依赖安装和 Next.js build,只做认证、实际路由与资源冒烟检查。 diff --git a/scripts/check-container.sh b/scripts/check-container.sh index bb82d88..9e6608a 100644 --- a/scripts/check-container.sh +++ b/scripts/check-container.sh @@ -1,7 +1,7 @@ #!/bin/sh set -eu export CI=true -pnpm install --frozen-lockfile --store-dir /pnpm/store --fetch-timeout 300000 +pnpm install --frozen-lockfile --store-dir /pnpm/store uv sync --project tools/figures --locked pnpm run lint pnpm run typecheck