diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5af84005b..471f5a22c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,6 @@ jobs: backend: ${{ steps.filter.outputs.backend }} frontend: ${{ steps.filter.outputs.frontend }} container: ${{ steps.filter.outputs.container }} - source: ${{ steps.filter.outputs.source }} steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -41,7 +40,7 @@ jobs: id: filter uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3 with: - # 目录规则取并集,再统一排除说明文档,保留隐藏配置与子模块指针 + # 目录规则取并集,再统一排除说明文档,保留隐藏配置 predicate-quantifier: some-with-excludes filters: | backend: @@ -61,17 +60,6 @@ jobs: - '.github/workflows/ci.yml' - '.github/workflows/_quality.yml' - '!**/*.md' - source: - - '.github/scripts/toolchains.rb' - - 'backend/rust-toolchain.toml' - - 'deploy/Dockerfile' - - '.gitmodules' - - 'modules/ui' - - 'modules/plugins' - - 'frontend/**' - - 'backend/crates/gateway-plugin/sdk/**' - - '.github/workflows/ci.yml' - - '!**/*.md' container: - 'backend/**' - 'frontend/**' @@ -101,56 +89,3 @@ jobs: uses: ./.github/workflows/_container.yml with: ref: ${{ github.event.pull_request.head.sha || github.sha }} - - source-development: - needs: changes - if: needs.changes.outputs.source == 'true' - runs-on: ubuntu-26.04 - timeout-minutes: 20 - steps: - - name: Checkout with development modules - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - ref: ${{ github.event.pull_request.head.sha || github.sha }} - submodules: recursive - - name: Setup pnpm - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 - with: - package_json_file: frontend/package.json - - name: Read build toolchains - id: toolchains - run: ruby .github/scripts/toolchains.rb >> "$GITHUB_OUTPUT" - - - name: Setup Node - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 - with: - node-version: ${{ steps.toolchains.outputs.node }} - - name: Setup Rust - uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 # master - with: - toolchain: ${{ steps.toolchains.outputs.rust }} - - name: Install development dependencies - run: | - pnpm --dir modules/ui install --frozen-lockfile - pnpm --dir frontend install --frozen-lockfile - pnpm --dir modules/plugins/examples/workbench/frontend install --frozen-lockfile - - name: Check UI source integration - run: | - pnpm --dir frontend build:source - pnpm --dir modules/plugins/examples/workbench/frontend build:source - - name: Check local SDK integration - env: - RUST_MIN_STACK: 16777216 - CARGO_TARGET_DIR: ${{ github.workspace }}/backend/target/plugin-development - run: | - sdk_check_dir="$RUNNER_TEMP/plugin-source" - mkdir -p "$sdk_check_dir/backend" - cp modules/plugins/examples/workbench/backend/Cargo.{toml,lock} "$sdk_check_dir/backend/" - cp -R modules/plugins/examples/workbench/backend/{src,tests} "$sdk_check_dir/backend/" - cp modules/plugins/examples/workbench/plugin.json "$sdk_check_dir/" - cargo test --manifest-path "$sdk_check_dir/backend/Cargo.toml" \ - --config "patch.\"https://github.com/zyycn/codex-proxy-rs.git\".gateway-plugin-sdk.path=\"$GITHUB_WORKSPACE/backend/crates/gateway-plugin/sdk\"" - - name: Ensure source checks preserve lockfiles - run: | - git diff --exit-code -- frontend/package.json frontend/pnpm-lock.yaml backend/Cargo.lock - git -C modules/plugins diff --exit-code -- examples/workbench/frontend/package.json examples/workbench/frontend/pnpm-lock.yaml examples/workbench/backend/Cargo.lock diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f4aa76ea4..23678bdf9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -228,7 +228,7 @@ git diff --check ## 自动检查与合并条件 -[CI](.github/workflows/ci.yml) 按变更范围调用质量检查,Markdown 不触发后端、前端、容器和源码联调任务,工作流语法检查独立执行 +[CI](.github/workflows/ci.yml) 按变更范围调用质量检查,Markdown 不触发后端、前端和容器任务,工作流语法检查独立执行 后端 CI 使用 nextest 执行 `main` 集成测试,默认 Redis 密码模式执行完整测试集,ACL 用户模式复用同一批构建产物执行 Store 的 Redis 测试;本地验证命令见 [架构文档](docs/architecture.md#验证命令) diff --git a/docs/development.md b/docs/development.md index e6a842865..1c2b56f08 100644 --- a/docs/development.md +++ b/docs/development.md @@ -75,6 +75,8 @@ pnpm --dir frontend dev | `modules/ui` | `codex-proxy-ui`,共用组件与主题 | | `modules/plugins` | `codex-proxy-plugins`,官方插件示例 | +各仓库的常规 CI 验证自身代码和锁定依赖。源码模式用于按需联调,运行前确认所选版本或提交组合及其公开合同兼容 + ### 检出与安装 首次检出可同时下载子模块: @@ -114,7 +116,6 @@ pnpm --dir modules/plugins/examples/workbench/frontend build:source ``` `build:source` 用各项目的 `tsconfig.source.json` 检查源码类型,管理端构建到 `frontend/node_modules/.vite/source-dist`,示例构建到其前端项目的 `.vite/source-dist`,不改写正式依赖、锁文件或 `dist`。 -源码联调 CI 显式检出子模块,分别按锁文件安装依赖,验证这两个命令并确认联调未改写正式依赖和锁文件 ### 本地 SDK 验证