-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Go faster, Travis CI! #359
base: master
Are you sure you want to change the base?
Conversation
For tests, we really don't need to do much more than build the compiler and run the tests --- Cabal shenanigans shouldn't be really necessary, so we can just use Stack here, which should handle caching much better. The `builtin-arrays' builds are currently broken, except on Dargent branches --- when those are merged, these builds should be flipped back to required. * Cogent ext2fs builds on Travis. * BilbyFs doesn't currently compile; it really should...
While we're here, bump resolvers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One general concern is that, we claim we support ... versions of GHC (in cogent.cabal
) whereas using stack, many of the claimed versions are not tested. Shall we drop the untested versions? Apart from that, I'm happy with all aspects of this change.
|
||
extra-package-dbs: [] | ||
extra-deps: | ||
- sbv-7.12 # for the `array' branches |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A question: on my branch, I use sbv > 8
. Which version of sbv
can I have via extra-deps
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is only to get the pins right given the current builtin-arrays code. In theory, you can have whatever version you like. I believe sbv-8.x works fine, although I vaguely recall running into issues with crackNum, a sbv dependency, on GHC 8.2; I'd need to test that again to check, and I'd want to make sure stuff still compiles happily in general anyway.
@zilinc wrote:
We could test those. However, I believe it's more valuable to instead test the flag combinations (or to instead turn on more flags by default). e.g., how do recursive-types interact with Docgent or the Haskell backend? This would expand our test matrix massively, unfortunately. I propose we strip back supported versions to the latest on each of the GHC-x.y branches, unless there's good reason to maintain testing against the point-releases. Given we're also looking at GHC-8.8 support, perhaps this makes a good opportunity to also drop support for 8.2.x? |
bda0cd5
to
9ee1060
Compare
* With +docgent, we use Pandoc, which won't Haddock in Stack. * With +haskell-backend, we get the haskell-lexer, which segfaults Haddock.
9ee1060
to
329cd7e
Compare
Currently, CI cycle times are awful --- and really variable. The longest recent build I've seen is 9h45m21s, and most builds hover between 5h and 9h. Occasionally, the caches will smile on us and bestow a 45-minute-or-less cycle time, and even that's pretty miraculous.
After lots of experimenting, cajoling, and swearing, I think I've got CI cycle times down to about a quarter-hour or less, consistently.
Along the way, I've flensed out a lot of complexity in the build --- for tests, we really don't need to do much more than build the compiler and run the tests --- Cabal shenanigans shouldn't be really necessary, so we can just use Stack here, which is much more amenable to caching.
builtin-arrays
-enabled builds are currently broken, except on Dargent branches --- when those are merged, these builds should be flipped back to required.A build that went OK, I guess:
Some builds that did not go well: