[英]How to enable .ivy2 caching for sbt when using a gitlab ci runner between builds
当使用gitlab ci runner和sbt时,我想避免每次构建时都下载所有的sbt jar文件。 有什么方法可以缓存吗? 这是我的.gitlab-ci.yml文件,它不能成功缓存.ivy2文件。
image: openjdk:8-jre-alpine
services:
- docker:dind
variables:
SBT_VERSION: "0.13.13"
SBT_HOME: "/usr/local/sbt"
SBT_JAR: "http://dl.bintray.com/sbt/native- packages/sbt/${SBT_VERSION}/sbt-${SBT_VERSION}.tgz"
cache:
paths:
- ~/.ivy2
stages:
- setup
setup:
stage: setup
script:
- export PATH="${SBT_HOME}/bin:$PATH"
- apk --update add bash wget curl tar git
- wget ${SBT_JAR}
- mkdir /usr/local/sbt
- tar -xf sbt-${SBT_VERSION}.tgz -C /usr/local/sbt --strip-components=1
- echo -ne "- with sbt sbt-${SBT_VERSION}\n" >> /root/.built
- rm sbt-${SBT_VERSION}.tgz
- echo "$PATH"
- cat /root/.built
- ls -als /usr/local/sbt
- sbt sbt-version
- ls -als ~/.ivy2
假设您正在使用docker runner,那么您需要更新config.toml
文件并使/root/.ivy2
与卷保持一致
这是我的:
concurrent = 1
check_interval = 0
[[runners]]
name = xxx
url = yyy
token = zzz
executor = "docker"
[runners.docker]
tls_verify = false
image = "ruby:2.1"
privileged = false
disable_cache = false
volumes = ["/cache", "/srv/home:/root/" ]
[runners.cache]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.