2016-11-04 6 views
3

При использовании gitlab ci runner и sbt я хочу избежать загрузки всех файлов sbt jar каждый раз, когда есть сборка. Есть ли способ кэшировать это? Вот мой файл .gitlab-ci.yml, который не кэширует файлы .ivy2.Как включить кеширование .ivy2 для sbt при использовании gitlab ci runner между строками

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 

ответ

2

Предполагая, что вы используете Docker бегун, то вам необходимо обновить файл 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]