分享

Bazel 分享

Bazel overview

Bazel 是一个开源的、像 Make、Maven、Gradle 一样的构建和测试工具

支持多语言、多平台

支持跨越多个仓库的大型代码仓库

支持多用户使用

增量编译 可追踪文件和构建命令的改动

规模大 可编译处理 100k+ 的源文件

日本的 LINE(移动端 iOS,先后在 2019-2020 年发布了视频博客分享他们迁移到 Bazel 的目的,过程,经验,踩坑等),中国的流利说(后端,2018 年 GopherChina 上分享过)、bilibili(后端 & 移动端),美国的 Pinterest 在用。

目前是 Tensorflow 的默认工具链。

第一版是 2015 年发布的,经历了 29 个小版本,在2019 年 10 月发布第一个稳定版 1.0,2019 年 12 月发布 2.0,2020 年 4 月发布 3.0,今年 1 月迎来了 4.0 的版本。

目前有 16.6k 的 star,将近 30k 个提交。

BazelCon vision and wrap-up

Twitter、Dropbox、Uber、Pinterest、GrabTaxi、Car Gurus 在使用 Bazel。

Bazel 可以通过使用易适配、易扩展的工具,来构建、测试、打包任何大小、复杂度、规模的项目。

Google Open Source Live "Bazel day" | Full Event

Google 的 2500+ 个 Angular 项目都是用 Bazel 构建的。

How to build Telegram IOS by Xcode 12.4, bazel 4.0

Bazel (Dart Developer Summit 2016)

Building Software at Google Scale: Bazel

Why Google Stores Billions of Lines of Code in a Single Repository

Blog

C++ 项目示例

BazelCon 2017

😈 Opening Remarks and Roadmap Update

领域特定语言 CocoaPods 为例

DSL 误区——王垠

😈 Platforms and Toolchains in Bazel

Integration testing with Bazel w/Dropbox

BazelCon 2018(20 个视频)

😈 BazelCon 2018 Day 1: Keynote

😈 BazelCon 2018 Day 1: Bazel Updates and Roadmap

😈 BazelCon 2018 Day 1: Fork, PR and Merge

😈 BazelCon 2018 Day 1: Virtual Mono-Repo & Bazel

😈 BazelCon 2018 Day 2: Collecting Code Coverage With Bazel

🤩👀😈 BazelCon 2018 Day 2: Improving the Usability of Remote Caching

🤩👀😈 BazelCon 2018 Day 2: Generating BUILD Files

BazelCon 2019(36 个视频)

😈 BazelCon 2019 Day 1: Keynote

😈 BazelCon 2019 Day 1: Project Updates + Q&A

👀😈 BazelCon 2019 Day 1: Six learnings in moving to a Bazel-based CI system + Q&A

😈 BazelCon 2019 Day 1: Lessons from Our First 100,000 Bazel Builds + Q&A

💗🤩👀😈 BazelCon 2019 Day 1: Migrating Lyft-iOS to Bazel + Q&A

BazelCon 2019 Day 1: Selective Testing + Q&A

💗🤩👀😈 BazelCon 2019 Day 1: Porting iOS Apps to Bazel + Q&A

BazelCon 2019 Day 1: Lightning Talk – Test Result Caching at Dropbox

BazelCon 2019 Day 1: Lightning Talk – Bazel Parallel and Asynchronous Artifact Publishing Pipeline

BazelCon 2019 Day 1: Lightning Talk – Testing Bazel’s Remote Execution API

BazelCon 2019 Day 1: Lightning Talk – Why Not To Have Bazel Dependencies

BazelCon 2019 Day 1: Lightning Talk – Bazel UI

BazelCon 2019 Day 1: Lightning Talk – Package manager integration with Bazel

BazelCon 2019 Day 2: Make local development (with Bazel) great again!

👀😈 BazelCon 2019 Day 2: Building a great CI w/ Bazel

BazelCon 2020(13 个视频)

😈 Keynote - State of Bazel and Announcement

😈 Migrating Twitter's monorepo from Pants to Bazel

👀😈 Bazel persistent workers

👀😈 Designing a language Agnostic CI using Bazel queries

👀😈 Pinterest’s journey to a Bazel monorepo

👀😈 GitOps based CI/CD