2016-11-04 3 views
3

Wenn ich gitlab ci runner und sbt verwende, möchte ich vermeiden, dass alle sbt jar-Dateien jedes Mal heruntergeladen werden, wenn ein Build erstellt wird. Gibt es eine Möglichkeit, dies zu cachen? Hier ist meine .gitlab-ci.yml-Datei, die die .ivy2-Dateien nicht erfolgreich zwischenspeichert.Wie aktiviert man .ivy2-Caching für sbt, wenn man einen gitlab ci runner zwischen Builds verwendet

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 

Antwort

2

Vorausgesetzt Sie haben eine Docker Läufer verwenden, dann müssen Sie die config.toml Datei aktualisieren und machen /root/.ivy2 persistent mit einem Volumen

hier ist meins:

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] 
Verwandte Themen