在Google Cloudbuild中缓存数据

时间:2019-10-01 16:29:21

标签: google-cloud-build

我想使用Google Cloudbuild来运行集成测试。目前,我的测试需要30分钟才能运行。主要瓶颈是测试从外部源查询大量数据。我不介意每次运行测试时都重复使用相同的数据。我有什么办法可以将这些数据缓存到Cloudbuild本地的某个地方,以便更快地加载?

3 个答案:

答案 0 :(得分:1)

我在Cloud Build中知道的唯一缓存是Kaniko cache,它可以缓存容器的层。

Cloud Build还具有一个内部缓存,用于缓存“ cloud builder”图像(您在步骤name中设置的图像)。您可以在Cloud Build日志中看到它:

Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/gcloud

我看到的唯一方法是使用所有静态文件构建一个custom "cloud builder" container。 Cloud Build只需下载一次,它将被缓存(我不知道TTL)。无论如何,从GCR下载都非常快。

但是,当文件更改时,必须重新构建它。这是您项目中的新CI管道。

答案 1 :(得分:0)

您可以将需求的静态副本存储在GCS中的文件夹中,并在执行构建之前使用rsync和GCP的内部带宽提取文件。这比从互联网上拉他们要快得多。像这样在构建的早期就添加一个步骤。

- name: gcr.io/cloud-builders/gsutil
  args: ['rsync', '-r', 'gs://my-cache-bucket/repository', 'local-cache-dir']

答案 2 :(得分:0)

https://github.com/GoogleCloudPlatform/cloud-builders-community/tree/master/cache有一个cache杰出的云构建者,可以简化向GCS存储桶中的低速缓存功能。

我仍然希望看到具有Travis CI这样的更多预制缓存规则的功能,