如何指定解析器(和 GHC)Travis 应该用来测试我的 Haskell 包?
How do specify the resolver (and GHC) Travis should use to test my Haskell package?
我正在尝试测试 my Haskell package against several Stackage resolvers on Travis,但我的 --resolver
环境变量被忽略了。
例如,如果我指定
env:
- ARGS="--resolver lts-4.0"
在我的 .travis.yml
, I still still seem to be using a different resolver (the one in my 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
在相应的build log中,表示使用了不同的解析器(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
's Travis documentation and Travis' environment variables documentation。
我正在尝试测试 my Haskell package against several Stackage resolvers on Travis,但我的 --resolver
环境变量被忽略了。
例如,如果我指定
env:
- ARGS="--resolver lts-4.0"
在我的 .travis.yml
, I still still seem to be using a different resolver (the one in my 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
在相应的build log中,表示使用了不同的解析器(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
's Travis documentation and Travis' environment variables documentation。