Skip to content

perf(ci): stabilize Rust validation critical path - #1983

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/ci-critical-path-pr7
Aug 2, 2026
Merged

perf(ci): stabilize Rust validation critical path#1983
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/ci-critical-path-pr7

Conversation

@limityan

@limityan limityan commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

变更说明

本 PR 收敛现有 Rust CI 关键路径,不新增 workflow 或 job:

  • 解除 rust-build-check 对完整前端构建的依赖。Rust check/test 仅创建 Tauri 代码生成所需的空 distsrc/mobile-web/dist;真实前端产物仍由 frontend-build 和产品打包流程负责。
  • 删除常规 CLI/Rust 验证中的 cargo generate-lockfile,统一消费已提交的 Cargo.lock,避免兼容版本发布自然改变 cache key 和 CI 解析结果。
  • PR 继续只恢复可信缓存;仅 main push 可以写缓存,并允许可信 main 在后段测试失败时保存已完成的依赖编译产物。
  • subscription、file-watch、search 用例分别收窄到 --lib 或显式 --test target,避免无关 test binary 进入编译图。
  • 扩展现有 check:github-config 回归契约,并把长期规则合入既有 Rust 构建依赖边界文档。

根因与架构边界

PR #1979 的 Windows 慢路径既包含冷缓存,也包含 Rust 矩阵被前端构建串行阻塞。此前每次重新生成 lockfile 还会让同一源码在上游兼容版本发布后得到新解析和新 cache key。Tauri 的 check/test 实际只要求配置路径存在,完整 Web 产物不是 Rust 编译 owner 的输入。

本 PR 保留三平台 workspace check、Core/Desktop 测试和现有平台敏感 suite,不用减少覆盖来换时间。Nightly 发布会先注入版本号,属于明确的 manifest 变更路径,本 PR 不修改该流程。

预期影响

项目 变更前 变更后 证据状态
Rust 矩阵最早调度 等待 Frontend Build;PR #1979 约 4 分 48 秒 checkout 后可独立调度 DAG 已验证;实际 hosted 时间待本 PR CI
Rust cache 解析输入 每个常规 job 重新生成 lockfile 使用提交的 Cargo.lock 静态契约和 --locked 本地验证
前端 artifact 1 次上传 + Rust 三平台下载 无上传/下载,无消费者 artifact 被删除 workflow 契约
focused suite 构建范围 package 级 test target 发现 owner --lib / --test target 三条精确命令本地通过

Hosted runner 波动仍然存在;本 PR 不把单次耗时写成永久阈值。Core/Desktop 全量 test profile 仍是剩余主耗时,将在后续 owner/test-target 隔离 PR 中处理。

验证

  • pnpm run check:github-config
  • cargo test --locked -p bitfun-ai-adapters --features subscription-auth --lib subscription_auth(48 passed)
  • cargo test --locked -p bitfun-services-integrations --no-default-features --features file-watch --test file_watch_contracts(7 passed)
  • cargo test --locked -p tool-runtime --lib search::(12 passed)
  • distsrc/mobile-web/dist 均为空时执行 cargo check --locked -p bitfun-desktop
  • git diff --check gcwing/main...HEAD

未在本地重复运行 workspace 全量 check/test;本 PR CI 保留这些跨平台验证。

@limityan
limityan merged commit c6d40ef into GCWing:main Aug 2, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant