Bazel 构建优化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/bazel-build-optimization。
技能介绍
要解决什么问题
大规模单体仓库(monorepo)在 CI 与本地开发里,常见痛点是:构建耗时长、缓存无法在团队间复用、依赖边界不清晰导致全量重编,以及从 Make/Gradle 等工具迁移到 Bazel 时缺少可复制的工程模式。本技能聚焦 Bazel 在生产环境中的用法,而不是泛泛介绍「什么是 Bazel」。
技能如何帮你落地
技能按「目标 → 约束 → 输入 → 验证」组织操作指引,并覆盖以下核心能力:
- 架构与概念:
Target、Package、Label、Rule、Aspect等术语在 monorepo 里的实际含义 - 工程模板:
WORKSPACE、.bazelrc、TypeScript/Python 库的BUILD、Docker 自定义规则、依赖查询与远程执行配置 - 性能与规范:细粒度目标、固定依赖版本、远程缓存、可见性约束;避免对
deps使用glob、勿提交bazel-*目录等反模式
需要逐步示例时,可对照资料中的 resources/implementation-playbook.md。
适用边界
- 适用:为 monorepo 搭建 Bazel、配置远程缓存/执行、优化构建耗时、编写自定义规则、调试构建问题、迁移到 Bazel
- 不适用:任务与 Bazel 构建优化无关,或需要本技能范围外的其他领域/工具
- 详细官方延伸见 Bazel 文档、Bazel 远程执行、
rules_js等资源链接(技能内已列出)
使用场景
- CI 里 monorepo 全量编译超过 30 分钟,需要拆分细粒度 Target 并接入远程缓存缩短流水线
- 新仓库要从 Gradle/Make 迁到 Bazel,需要按模板配置 WORKSPACE 与各目录 BUILD 文件
- 团队共享构建产物失败,需要在 .bazelrc 中正确配置远程执行与缓存端点并验证命中
- Docker 镜像要在 Bazel 流水线内 reproducible 构建,需要编写或调整自定义 Rule 与 deps 显式声明
适合人员
- 维护千人级 monorepo 的平台工程师,诉求是把 Bazel 远程缓存/执行接到公司 CI 并量化构建耗时下降
- 负责语言栈迁移的构建负责人,诉求是 TypeScript/Python 库 BUILD 模板与依赖查询命令能直接落地
- 从遗留构建系统切 Bazel 的 SRE/Release 工程师,诉求是 WORKSPACE/.bazelrc 基线与迁移步骤可验证
- 编写内部构建规则的开发者,诉求是 Docker 自定义 Rule、可见性约束与构建警告不被当成可忽略噪音