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