【问题标题】:gitlab-runner download and store cache file in each job of pipelinegitlab-runner 在管道的每个作业中下载并存储缓存文件
【发布时间】:2019-06-03 06:54:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: gitlab-ci gitlab-ci-runner


    【解决方案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  
        ...
    

    【讨论】:

    • 非常感谢,这可以是另一种方式,但如果我想使用缓存,则必须为每个作业拉取。
    • 嗯,我明白你的意思。因此,如果您在每个阶段都需要缓存,它也会在每个阶段下载。但是,如果缓存只是读取而不被作业更改,您至少可以使用pull 策略减少执行时间。
    猜你喜欢
    • 1970-01-01
    • 2021-10-21
    • 2016-02-02
    • 2021-02-13
    • 2022-01-20
    • 2016-10-29
    • 1970-01-01
    • 2018-07-06
    • 2019-04-27
    相关资源
    最近更新 更多