haskell - Travis CI - 为 Haskell Stack 构建绕过 50m 超时
问题描述
我有一个包含 300 多个文件(大部分是自动生成的)的 Haskell 项目。我可以用我的 4 岁在几分钟内完成它。处理器(通过在 stack.yaml 中指定 ghc-options: $everything: -j),但是当涉及到 Travis 时,事情变得非常缓慢。似乎模块是按顺序处理的,甚至单个模块的编译时间要大得多(我的机器上大约一秒,Travis 上几十秒)最终我遇到了 Travis 超时(单个作业 50 分钟)。有什么方法可以加快 Travis 构建或将编译过程拆分为多个作业?我会接受 Travis 的付费计划,我需要无需复杂设置即可工作的解决方案。
解决方案
此配置使用阶段: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
是试图解决这些问题。
推荐阅读
- awk - 用于模式匹配列的简洁 AWK,同时保留指定每个文件的标题
- arrays - 使用堆栈函数填充数组
- java - 在声明式詹金斯管道中安装 ant
- c++ - 如何在不使用循环 C++ 的情况下在向量中添加一定数量的元素
- kubernetes - 使用 volume 和 env 将外部文件夹映射到 kubernetes pod
- python - 使用 python pandas 按日期自动生成报告
- flutter - 如何在 GetPage Flutter 中使用自定义转换
- kubernetes - fs 类型错误、选项错误、/dev/nvme1n1 上的超级块错误、缺少代码页或帮助程序或其他错误
- javascript - 在窗口缩小 NUXT.js/Vue.js 内容后添加空格
- react-native - React Native 如何做出完整的 Comment 功能?