首页 > 解决方案 > Travis CI - 为 Haskell Stack 构建绕过 50m 超时

问题描述

我有一个包含 300 多个文件(大部分是自动生成的)的 Haskell 项目。我可以用我的 4 岁在几分钟内完成它。处理器(通过在 stack.yaml 中指定 ghc-options: $everything: -j),但是当涉及到 Travis 时,事情变得非常缓慢。似乎模块是按顺序处理的,甚至单个模块的编译时间要大得多(我的机器上大约一秒,Travis 上几十秒)最终我遇到了 Travis 超时(单个作业 50 分钟)。有什么方法可以加快 Travis 构建或将编译过程拆分为多个作业?我会接受 Travis 的付费计划,我需要无需复杂设置即可工作的解决方案。

标签: haskelltravis-cihaskell-stack

解决方案


此配置使用阶段:https ://github.com/google/codeworld/blob/f20020ca78fee51afdf6a5ef13eacc6d15c15724/.travis.yml

但是,缓存存在不可预知的问题,或者 Travis 配置可能存在问题:https ://travis-ci.org/google/codeworld/builds/626216910 另外,我不确定 Travis 如何利用缓存同时构建。

https://github.com/google/codeworld/blob/f20020ca78fee51afdf6a5ef13eacc6d15c15724/.travis.yml#L52-L63 , https://github.com/google/codeworld/blob/f20020ca78fee51afdf6a5ef13eacc6d15c15724/.travis.yml#L74 , 和多余的调用stack upgrade --binary-only是试图解决这些问题。


推荐阅读