cache 缓存
- 存储编译项目所需的运行时依赖项,指定项目工作空间中需要在job之间缓存的文件或目录
- 全局cache定义在job之外,针对所有job生效。job中cache优先于全局。
cache:paths
- 在job build中定义缓存,将会缓存target目录下的所有.jar文件
- 当在全局定义了cache:paths 会被job中覆盖。以下实例将缓存target目录。
- 由于缓存是在job之间共享的,如果不同的job适用不同的路径就会出现了缓存覆盖的问题。可以设置cache: key,让不同的job缓存不同的chche
build:
script: test
cache:
paths:
- target/*.jar
cache:
paths:
- my/files
build:
script: echo "hello"
cache:
key: build
paths:
- target/
cache: key 缓存标记
- 为缓存做个标记,可以设置job、分支为key来实现分支作业特定的缓存
- 为不同job定义了不同的cache: key时,会为每个job分配一个独立的cache
- cache:key 变量可以使用任何预定义变量,默认default
# 按照分支设置缓存
cache:
key: ${CI_COMMIT_REF_SLUG}
cache:key:files 文件变化自动创建缓存
files: 文件发生变化自动重新生成缓存(files最多指定两个文件),提交的时候检查指定的文件。根据指定的文件生成密钥计算SHA校验和,如果文件未改变值为default
cache:
key:
files:
- package,json
paths:
- node_modules
cache:policy 缓存策略
默认: 在执行开始时下载文件,并在执行结束时重新上传文件。