我正在使用以下 .gitlab-ci.yml
文件为使用 stack new actividad3 --resolver=lts-14.6
创建的 Haskell Stack 项目设置 gitlab-CI。
image: haskell:8.6.5
cache:
paths:
- .stack
- .stack-work
- target
test:
stage: test
script:
- ghc --version
- stack --system-ghc build
- stack test
项目的构建和测试持续了将近 5 分钟。大部分时间用于构建 hspec 库。有没有办法在管道运行之间缓存使用的库?
提前致谢。
最佳答案
将这些部分添加到您的 .gitlab-ci.yml
:
variables:
STACK_ROOT: "${CI_PROJECT_DIR}/.stack-root"
cache:
paths:
- .stack-work/
- .stack-root/
$STACK_ROOT
env 变量更改文件夹堆栈用于其全局文件。这是必需的,因为 GitLab CI 只能缓存项目文件夹下的文件,因此缓存 $HOME/.stack
、 ~/.stack
或 /root/.stack
将不起作用。网络上的一些相关引用资料:
关于haskell - 用于 Haskell Stack 项目的 gitlab-CI : How to cache built libraries?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58017051/