elm编译在CI(Circle/Travis)上非常缓慢。对于一个相对较小的elm项目,我个人在Circle上遭受了超过30分钟的构建时间。该问题源自于CPU计数检测,建议使用“libsysconfcpus”返回1个CPU而非实际检测到的数量。有没有其他方法来减轻这种长时间的编译?https://github.com/elm-lang/elm-compiler/issues/1473
来自https://elmlang.slack.com/archives/general/p1484149451013255
@rtfeldman:
由于Circle和Travis错误报告CPU数量,所以它们存在已知的速度问题,但有一个解决方法:在 Circle 配置中添加以下内容的等效部分:
- https://github.com/elm-community/elm-test/blob/master/.travis.yml#L6
- https://github.com/elm-community/elm-test/blob/master/.travis.yml#L22-L30
- https://github.com/elm-community/elm-test/blob/master/.travis.yml#L39-L41 (编辑)
基本上,它们将
elm-make
替换为运行具有sysconfcpus -n 2
参数的脚本,以便elm-make
能够意识到可用的实际 CPU 数量。我与Circle的人谈了一下,他们的结论是,他们不感兴趣修复它,但它可能在将来某个上游软件的版本中自行解决
libsysconfcpus
之外的解决方案,我将接受您的答案。 - sjt003sudo: true
.travis.yml
文件中,它将我的Haskell构建时间从18分钟缩短到了3分钟。libsysconfcpus
限制sysconf检测到的CPU数量确实可以在Circle CI中将elm-make时间缩短一个数量级。
libsysconfcpus
似乎不是一个理想的解决方案,尽管我正在尝试它。 - sjt003elm-stuff/build-artifacts
吗?(我认为这也在问题1473中提到了)这对我很有效(从15分钟降至约4分钟),但我认为必须在依赖阶段运行才能被缓存。 - jpvillaisaza