Size: a a a

Scala User Group

2021 February 05

λ

λoλdog in Scala User Group
кароч тут все как надо кэшируется
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
я вот с этим щас страдаю. Гитлаб умеет кеши кешировать только из рабочей директории, поэтому  кешировать ~/.sbt не выйдет
там можно переопределить, мы вроде это победили, но как я понял гитлаб не может кэшировать разные папки по разному
источник

λ

λoλegΥch in Scala User Group
все как надо тут https://github.com/OlegYch/sbt-cached-ci
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
там можно переопределить, мы вроде это победили, но как я понял гитлаб не может кэшировать разные папки по разному
что ты имеешь в виду под кешировать по разному?
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
что ты имеешь в виду под кешировать по разному?
> с кэшированием артефактов в пределах одного пайплайна и кэшированием кэшей сбт/иви/курсира в пределах ветки
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
> с кэшированием артефактов в пределах одного пайплайна и кэшированием кэшей сбт/иви/курсира в пределах ветки
а, ну я такое как раз сделал через cache & artifacts
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
а, ну я такое как раз сделал через cache & artifacts
под артефактами я имею в виду папку target, сори
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
кеши по ключу ветки шарятся между пайплайнами, артефакты шарятся внутри пайплайна
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
под артефактами я имею в виду папку target, сори
а что тебе в ней надо кешировать? Результаты компиляции?
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
их я через remoteCache в артефакте организовал
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
а что тебе в ней надо кешировать? Результаты компиляции?
да, чтобы не компилировать в каждой джобе пайплайна одно и то же
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
да, чтобы не компилировать в каждой джобе пайплайна одно и то же
в билдсбт:
pushRemoteCacheTo in ThisBuild := Some(
 MavenCache("local-ci-cache", file("remote-cache"))
)

в ямле самая первая джоба компилирует и пушит в кеш результат:

compile:
 
stage: compile
 
script:
   - ets -s -f '[%T.%L]' scalafmt-native --check
   - ets -s -f '[%T.%L]' sbt compile test:compile pushRemoteCache
 
artifacts:
   
paths:
     - target/scala-2.13/meta
     - target/scala-2.13/test-meta
     - local-ci-cache/


и первая команда в каждой джобе, где нужна компиляция выглядит как-то так:
sbt pullRemoteCache cmd cmd cmd
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
там можно переопределить, мы вроде это победили, но как я понял гитлаб не может кэшировать разные папки по разному
как победили с переопределением?
У меня там проблемы с образом с СБТ, что в нем хочется скачать нужную версию заранее
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
в билдсбт:
pushRemoteCacheTo in ThisBuild := Some(
 MavenCache("local-ci-cache", file("remote-cache"))
)

в ямле самая первая джоба компилирует и пушит в кеш результат:

compile:
 
stage: compile
 
script:
   - ets -s -f '[%T.%L]' scalafmt-native --check
   - ets -s -f '[%T.%L]' sbt compile test:compile pushRemoteCache
 
artifacts:
   
paths:
     - target/scala-2.13/meta
     - target/scala-2.13/test-meta
     - local-ci-cache/


и первая команда в каждой джобе, где нужна компиляция выглядит как-то так:
sbt pullRemoteCache cmd cmd cmd
это вообще ни с чем не помогает, папку с кэшом надо же куда-то запихивать, с таким же успехом можно и target кэшировать
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
это вообще ни с чем не помогает, папку с кэшом надо же куда-то запихивать, с таким же успехом можно и target кэшировать
она и запихивается в артефакт
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
который доступен всем последующим джобам внутри одного пайплайна
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
как победили с переопределением?
У меня там проблемы с образом с СБТ, что в нем хочется скачать нужную версию заранее
variables:
 SBT_OPTS: "-Dsbt.global.base=sbt-cache/.sbtboot -Dsbt.boot.directory=sbt-cache/.boot -Dsbt.ivy.home=sbt-cache/.ivy"
 COURSIER_CACHE: "sbt-cache/coursier"

cache:
 key: "$CI_BUILD_REF_NAME"
 untracked: true
 paths:
   - "sbt-cache/.ivy/cache"
   - "sbt-cache/coursier"
   - "sbt-cache/.boot"
   - "sbt-cache/.sbtboot"
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
который доступен всем последующим джобам внутри одного пайплайна
а после пайплайна он подыхает?
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Nikita Vilunov
а после пайплайна он подыхает?
нет
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
можно его достать через урл специальный
источник