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

时间:2019-06-03 06:54:52

标签: gitlab-ci gitlab-ci-runner

我正在为gitlab运行程序使用分布式缓存(S3)。它工作正常,但在每次作业执行之前和之后都将缓存文件下载并存储在s3中。我希望它在管道执行中只下载一次缓存文件。否则,高速缓存会负担很重,并且不会缩短执行时间。

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

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

1 个答案:

答案 0 :(得分:1)

您可以配置应如何为每个作业分别处理缓存。

这将防止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  
    ...