【问题标题】:How to enable .ivy2 caching for sbt when using a gitlab ci runner between builds在构建之间使用 gitlab ci 运行器时如何为 sbt 启用 .ivy2 缓存
【发布时间】:2017-03-18 13:52:02
【问题描述】:

当使用 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

【问题讨论】:

    标签: caching sbt gitlab gitlab-ci-runner


    【解决方案1】:

    假设您使用的是 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]
    

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 2021-04-07
      • 2016-04-09
      • 2022-01-17
      • 1970-01-01
      • 2019-04-26
      • 2016-08-27
      • 2016-02-25
      • 2015-10-24
      相关资源
      最近更新 更多