2016-11-04 66 views
3

當使用gitlab ci亞軍和sbt時,我想避免每次構建時都下載所有的sbt jar文件。有什麼辦法可以緩存嗎?這是我的.gitlab-ci.yml文件,它不能成功緩存.ivy2文件。如何啓用.ivy2緩存sbt當使用gitlab ci亞軍建立之間

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

假設你正在使用泊塢窗亞軍,那麼你就需要更新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]