Travis 构建在 cabal 检查警告后失败
Travis build failing after a cabal check warning
几个构建,如 this one,在执行 cabal check
:
时失败
++cabal check
These warnings may cause trouble when distributing the package:
* 'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit
and not just imposing longer compile times on your users.
但是,大多数其他 builds in the matrix 在此检查后不会失败。
我正在使用 complex Travis configuration suggested at the stack
docs, and this 是我尝试进行的项目的特定 Travis 配置 CI。
关于可能导致此行为的原因有什么想法吗?
您的 travis 配置中有两种构建类型:
- 基于堆栈的构建
- 基于 Cabal 的构建
如果您遵循 script code,您将看到只有基于 Cabal
的构建中包含命令 cabal check
。这将解释为什么所有基于 Stack 的构建都运行良好。现在,让我们详细看看 cabal 检查命令行:
cabal check || [ "$CABALVER" == "1.16" ]
因此,如果您安装的 cabal 版本是 1.16,它将忽略 cabal check 的输出,并且该命令被视为成功。事实上,这就是正在发生的事情。只有一个基于 Cabal 的构建作业在你的 travis 中是成功的,因为它的版本是 1.16
.
几个构建,如 this one,在执行 cabal check
:
++cabal check
These warnings may cause trouble when distributing the package:
* 'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit
and not just imposing longer compile times on your users.
但是,大多数其他 builds in the matrix 在此检查后不会失败。
我正在使用 complex Travis configuration suggested at the stack
docs, and this 是我尝试进行的项目的特定 Travis 配置 CI。
关于可能导致此行为的原因有什么想法吗?
您的 travis 配置中有两种构建类型:
- 基于堆栈的构建
- 基于 Cabal 的构建
如果您遵循 script code,您将看到只有基于 Cabal
的构建中包含命令 cabal check
。这将解释为什么所有基于 Stack 的构建都运行良好。现在,让我们详细看看 cabal 检查命令行:
cabal check || [ "$CABALVER" == "1.16" ]
因此,如果您安装的 cabal 版本是 1.16,它将忽略 cabal check 的输出,并且该命令被视为成功。事实上,这就是正在发生的事情。只有一个基于 Cabal 的构建作业在你的 travis 中是成功的,因为它的版本是 1.16
.