如何在Circle CI或Travis CI上减少Elm编译时间?

6
elm编译在CI(Circle/Travis)上非常缓慢。对于一个相对较小的elm项目,我个人在Circle上遭受了超过30分钟的构建时间。该问题源自于CPU计数检测,建议使用“libsysconfcpus”返回1个CPU而非实际检测到的数量。有没有其他方法来减轻这种长时间的编译?https://github.com/elm-lang/elm-compiler/issues/1473

1
使用 libsysconfcpus 似乎不是一个理想的解决方案,尽管我正在尝试它。 - sjt003
我不会接受我的答案,因为它只是对 https://github.com/elm-lang/elm-compiler/issues/1473 中推荐的修复方法的确认。我正在寻找一种更少 hacky 的方式来减少 elm 在 ci 中的构建时间。 - sjt003
你尝试过缓存 elm-stuff/build-artifacts 吗?(我认为这也在问题1473中提到了)这对我很有效(从15分钟降至约4分钟),但我认为必须在依赖阶段运行才能被缓存。 - jpvillaisaza
3个回答

8

来自https://elmlang.slack.com/archives/general/p1484149451013255

@rtfeldman:

由于Circle和Travis错误报告CPU数量,所以它们存在已知的速度问题,但有一个解决方法:在 Circle 配置中添加以下内容的等效部分:

基本上,它们将elm-make替换为运行具有sysconfcpus -n 2参数的脚本,以便elm-make能够意识到可用的实际 CPU 数量。

我与Circle的人谈了一下,他们的结论是,他们不感兴趣修复它,但它可能在将来某个上游软件的版本中自行解决


1
这是我想要避免的那个精确解决方案,链接就在这里。 - sjt003
如果您能提供除我在问题中链接并在我的答案中确认的libsysconfcpus之外的解决方案,我将接受您的答案。 - sjt003
抱歉,我还没有测试过它。 - rofrol

1
考虑设置:
sudo: true

在你的.travis.yml文件中,它将我的Haskell构建时间从18分钟缩短到了3分钟。

0
对于寻求快速解决方案的用户:使用libsysconfcpus限制sysconf检测到的CPU数量确实可以在Circle CI中将elm-make时间缩短一个数量级。

仍在寻找另一种方式来减少CI中的构建时间。 - sjt003

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接