[英]How do specify the resolver (and GHC) Travis should use to test my Haskell package?
我正在嘗試針對Travis上的多個Stackage解析器測試Haskell軟件包 ,但是我的--resolver
環境變量被忽略了。
例如,如果我指定
env:
- ARGS="--resolver lts-4.0"
在我的.travis.yml
,我仍然似乎仍在使用其他解析器(在我的stack.yaml
嗎?)和GHC中,如以下行所示
Installing library in
/home/travis/build/orome/crypto-enigma-hs/.stack-work/install/x86_64-linux/lts-9.1/8.0.2/lib/x86_64-linux-ghc-8.0.2/crypto-enigma-0.0.2.9-6Cs7XSzJkwSDxsEMnLKb0X
在相應的構建日志中 ,它指示一個不同的解析器(9.1),並使用了相應的GHC(8.0.2)。
如何配置我的構建( stack.yaml
, .travis.yml
等),以確保使用我指定的解析器(和相應的GHC)執行Travis構建和測試?
使用env
您只需定義環境變量。 您仍然必須使用它們。 stack
本身不遵守ARGS
變量,因此請在腳本中使用它,例如
install:
# Build dependencies
- stack $ARGS --no-terminal --install-ghc test --only-dependencies
script:
# Build the package, its tests, and its docs and run the tests
- stack $ARGS --no-terminal --install-ghc test --haddock --no-haddock-deps
您可能應該使用更好的名稱,例如RESOLVER
:
env:
- RESOLVER=lts-4.0
- RESOLVER=lts-6.0
- RESOLVER=lts-8.0
install:
# Build dependencies
- stack --resolver $RESOLVER --no-terminal --install-ghc test --only-dependencies
script:
# Build the package, its tests, and its docs and run the tests
- stack --resolver $RESOLVER --no-terminal --install-ghc test --haddock --no-haddock-deps
還請記住,通常最好使用多個stack.yml
來保存該特定LTS變體的配置。
有關更多信息,請參見stack
的Travis文檔和Travis的環境變量文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.