Haskell Stack 项目的 gitlab-CI:如何缓存构建的库?

Rom*_*cía 4 haskell ghc gitlab gitlab-ci haskell-stack

我正在使用以下.gitlab-ci.yml文件为使用stack new actividad3 --resolver=lts-14.6.

image: haskell:8.6.5

cache:
  paths:
    - .stack
    - .stack-work
    - target

test:
  stage: test
  script:
    - ghc --version
    - stack --system-ghc build
    - stack test
Run Code Online (Sandbox Code Playgroud)

构建和测试该项目持续了近 5 分钟。大部分时间都花在构建 hspec 库上。有什么方法可以在管道运行之间缓存使用的库吗?

提前致谢。

Cig*_*Man 7

将这些部分添加到您的.gitlab-ci.yml

variables:
  STACK_ROOT: "${CI_PROJECT_DIR}/.stack-root"

cache:
  paths:
    - .stack-work/
    - .stack-root/
Run Code Online (Sandbox Code Playgroud)

env$STACK_ROOT变量更改其全局文件使用的文件夹堆栈。这是必需的,因为 GitLab CI 只能缓存项目文件夹下的文件,所以缓存$HOME/.stack,~/.stack/root/.stack将不起作用。

网上的一些相关参考: