小编stu*_*bbi的帖子

如何防止gitlab ci每次都下载sbt?

我们有一个play2/scala用gitlab ci构建的应用程序.

我们.gitlab-ci.yml(至少重要的部分)看起来如下:

image: hseeberger/scala-sbt

variables:
  SBT_GLOBAL_BASE_DIR: "$CI_PROJECT_DIR/cache/.sbt"
  IVY2_CACHE_DIR: "$CI_PROJECT_DIR/cache/.ivy2"
  SBT_BOOT_DIR:  "$CI_PROJECT_DIR/cache/.sbt/boot"
  M2_HOME_DIR: "$CI_PROJECT_DIR/cache/.m2"

before_script:
  # Log the sbt version
  - sbt sbt-version

build:
  stage: build
  script:
    - ./build.sh
Run Code Online (Sandbox Code Playgroud)

build.sh:

sbt -Dsbt.global.base=$SBT_GLOBAL_BASE_DIR \
  -Dsbt.ivy.home=$IVY2_CACHE_DIR \
  -Dsbt.boot.directory=$SBT_BOOT_DIR \
  compile
Run Code Online (Sandbox Code Playgroud)

不幸的是,我们的管道总是运行大约30-40分钟,包括所有步骤(构建,验证,部署).大部分时间sbt通过一次又一次地下载真正烦人的事情来花费.

我可能不太了解,gitlab ci runners但根据我的理解,通过使用hseeberger/scala-sbt作为图像,sbt应该是全局可用的,不应该下载它.

然后gitlab的这个解决方案也没有必要.

无论如何,sbt每当服务器运行任何sbt命令时,如果在每次部署期间不会完全下载6次,我会很高兴.

有人可以解释我如何使用正确imageimage正确的方式,或者我如何缓存这些sbt东西?

更新

在过去的几天里,我docker和他一起战斗了很多gitlab ci.我发现这个问题与 …

scala maven sbt gitlab-ci sbt-plugin

11
推荐指数
1
解决办法
4564
查看次数

标签 统计

gitlab-ci ×1

maven ×1

sbt ×1

sbt-plugin ×1

scala ×1