gitlab-runner 在管道的每个作业中下载并存储缓存文件

gitlab-runner download and store cache file in each job of pipeline

我正在为 gitlab runner 使用分布式缓存 (S3)。它工作正常,但它会在每次作业执行前后下载缓存文件并将其存储在 s3 中。我希望它应该在管道执行中只下载一次缓存文件。否则缓存是负担并且不会改善执行时间。

我在gitlab-ci文件中定义全局缓存

cache:
  key: "$CI_COMMIT_REF_NAME"
  untracked: true
  paths:
    - .m2/repository/

您可以配置如何为每个作业单独处理缓存。

这将阻止 GitLab 下载此作业的缓存。

no-cache:
    stage: no-cache
    cache: {}  
    ...

这将使 GitLab 仅拉取 此作业的缓存。

pull-cache:
    stage: pull-cache
    cache: 
        policy: pull  
    ...

这将使 GitLab 仅推送 该作业的缓存。

pull-cache:
    stage: pull-cache
    cache: 
        policy: push  
    ...