snowleopard / hadrian

Hadrian: a new build system for the Glasgow Haskell Compiler. Now merged into the GHC tree!
https://gitlab.haskell.org/ghc/ghc/tree/master/hadrian
MIT License
208 stars 37 forks source link

Extending CI for keeping an eye on more rules #630

Closed alpmestan closed 5 years ago

alpmestan commented 6 years ago

Hello,

Our CI currently "only" goes as far as building a stage 2 compiler and having it evaluate a trivial expression. I am well aware that Travis has some time limits for open-source projects, but then I looked at the timings reported for a very recent run (https://travis-ci.org/snowleopard/hadrian/builds/393394592) and realized that the complete quickest build that succeeds there takes around 47 mins. This got me wondering whether there's any chance we could give a shot at running a little more on travis. I'm for example thinking about the binary distribution rule, perhaps the smallest & quickest validation that fits with the allocated time, nofib, things like that. IIRC the maximum time is 1 hour.

snowleopard commented 6 years ago

@alpmestan Unfortunately the time limit is 50 minutes, so we can't really pack anything in.

Are you aware of @izgzhen's Hadrian's Wall project?

https://github.com/monad-systems/hadrians-wall

I think what you suggest was exactly the motivation for Hadrian's Wall.

alpmestan commented 6 years ago

Oh indeed that seems rather relevant! In that case... @izgzhen thoughts on my suggestion? :)

izgzhen commented 6 years ago

@alpmestan Thanks for the comment!

I think it is unrealistic to rely on free services like Travis for long time tasks. Either we pay for it, or we crowd-build it. I am pursing after the second goal, but it took time to implement so the project progress is always sloppy. It has two problems: 1. insufficient automation to make it easy to setup (I want to contribute my computing power but not human attention). 2. insufficient motivation.

I am still not fully aware of how the community solved this problem for the current-in-use Make build system. I remember that there are some Harbormaster workers? Who pays the computation?

alpmestan commented 6 years ago

There's no more caching we can do, is there? The CI script seems to cache ~/.cabal and ~/.ghc.

alpmestan commented 6 years ago

@izgzhen Regarding resources etc, I think it's best if I just let @bgamari comment on this.

izgzhen commented 6 years ago

w.r.t. computation resource, let's say we test three major platforms for now, up to five configurations, avg. running time 2hr (single core), and let do nightly build for now. It means that we need 3 5 2 * 1 = 30 hr per day. If we can parallelize it by two, then it can be finished within the time window.

snowleopard commented 5 years ago

I believe this has been fixed.

izgzhen commented 5 years ago

Thanks a lot for checking on this and beyond!