cache

在作业之间缓存目录以加速流水线。

支持: key(字符串、files、prefix)、policy、when、untracked、unprotect、fallback_keys、多个缓存

示例

字符串形式的 key

job:
  script: echo "job"
  cache:
    key: my-cache
    paths:
      - vendor/

基于文件的 key

job:
  script: echo "job"
  cache:
    key:
      files:
        - Gemfile.lock
    paths:
      - vendor/

带前缀的 key

job:
  script: echo "job"
  cache:
    key:
      files:
        - Gemfile.lock
      prefix: $CI_JOB_NAME
    paths:
      - vendor/

缓存策略

job:
  script: echo "job"
  cache:
    key: my-cache
    paths:
      - vendor/
    policy: pull

失败时缓存

job:
  script: echo "job"
  cache:
    key: my-cache
    paths:
      - vendor/
    when: on_failure

后备 key

job:
  script: echo "job"
  cache:
    key: my-cache
    paths:
      - vendor/
    fallback_keys:
      - fallback-key-1
      - fallback-key-2

未跟踪文件

job:
  script: echo "job"
  cache:
    untracked: true
    paths:
      - vendor/

取消缓存保护

job:
  script: echo "job"
  cache:
    key: my-cache
    paths:
      - vendor/
    unprotect: true

多个缓存

job:
  script: echo "job"
  cache:
    - key: gems
      paths:
        - vendor/gems/
    - key: node
      paths:
        - node_modules/