bazel 远程回购的本地缓存
Local cache for bazel remote repos
我们正在为一个 C++ 项目使用 运行 CI 的代码传输。我们的 CI 构建包含一个 Docker 图像,我们在其中安装系统依赖项,然后是一个 bazel build
构建我们测试的步骤。
我们的 bazel WORKSPACE 文件引入了各种外部依赖项,例如 gtest:
new_http_archive(
name = "gtest",
url = "https://github.com/google/googletest/archive/release-1.7.0.zip",
build_file = "thirdparty/gtest.BUILD",
strip_prefix = "googletest-release-1.7.0",
sha256 = "b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0",
)
在 CI 构建期间,下载这些文件花费了大量时间。是否可以将 Bazel 设置为对这些存档使用本地缓存?
我认为 Bazel 已经在 output_base 中缓存了外部存储库(应该,如果不是,这是一个值得报告的错误)。您是否可以选择在 docker 容器中保持缓存热?例如。通过获取代码和 运行 bazel fetch //...
或一些更具体的目标?请注意,您还可以使用 bazel --output_base=/foo build //...
指定 bazel 的 output_base 在哪里。您可能会发现 this doc section 相关。
[编辑:我们很棒的 Kristina 来拯救这一天]:
您可以使用--experimental_repository_cache=/path/to/some/dir
这有帮助吗?
我们正在为一个 C++ 项目使用 运行 CI 的代码传输。我们的 CI 构建包含一个 Docker 图像,我们在其中安装系统依赖项,然后是一个 bazel build
构建我们测试的步骤。
我们的 bazel WORKSPACE 文件引入了各种外部依赖项,例如 gtest:
new_http_archive(
name = "gtest",
url = "https://github.com/google/googletest/archive/release-1.7.0.zip",
build_file = "thirdparty/gtest.BUILD",
strip_prefix = "googletest-release-1.7.0",
sha256 = "b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0",
)
在 CI 构建期间,下载这些文件花费了大量时间。是否可以将 Bazel 设置为对这些存档使用本地缓存?
我认为 Bazel 已经在 output_base 中缓存了外部存储库(应该,如果不是,这是一个值得报告的错误)。您是否可以选择在 docker 容器中保持缓存热?例如。通过获取代码和 运行 bazel fetch //...
或一些更具体的目标?请注意,您还可以使用 bazel --output_base=/foo build //...
指定 bazel 的 output_base 在哪里。您可能会发现 this doc section 相关。
[编辑:我们很棒的 Kristina 来拯救这一天]:
您可以使用--experimental_repository_cache=/path/to/some/dir
这有帮助吗?