gpt4 book ai didi

caching - Google Cloud Build - 如何缓存 Bazel?

转载 作者:行者123 更新时间:2023-12-04 02:39:34 26 4
gpt4 key购买 nike

我最近开始将 Cloud Build 与 Bazel 结合使用。
所以我有一个基本的 cloudbuild.yaml

steps:
- id: 'run unit tests'
name: gcr.io/cloud-builders/bazel
args: ['test', '//...']

它运行我的 Bazel 项目的所有测试。

但是正如您从这个屏幕截图中看到的,每个构建大约需要 4 分钟,尽管我没有触及任何会影响我的测试的代码。

build duration

首次在本地运行测试大约需要 1 分钟。但是第二次运行测试,在 Bazels 缓存的帮助下,只需要几秒钟。

所以我的目标是在 Google Cloud Build 中使用 Bazel 缓存

更新

正如 Thierry Falvo 所建议的我看过那些 recommendations .因此我尝试将以下内容添加到我的 cloudbuild.yaml :
steps:
- name: gcr.io/cloud-builders/gsutil
args: ['cp', 'gs://cents-ideas-build-cache/bazel-bin', 'bazel-bin']

- id: 'run unit tests'
name: gcr.io/cloud-builders/bazel
args: ['test', '//...']

- name: gcr.io/cloud-builders/gsutil
args: ['cp', 'bazel-bin', 'gs://cents-ideas-build-cache/bazel-bin']

虽然我创建了存储桶和文件夹,但我收到此错误:
CommandException: No URLs matched

cloud build error

最佳答案

我认为与其缓存离散结果(工件),不如将 GCS(云存储)用作 bazel remote cache .

- name: gcr.io/cloud-builders/bazel
args: ['test', '--remote_cache=https://storage.googleapis.com/<bucketname>', '--google_default_credentials', '--test_output=errors', '//...']

关于caching - Google Cloud Build - 如何缓存 Bazel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60023931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com