-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Update Travis to use faster container-based (Docker) infrastructure #877
Conversation
Sigh. It looks like gmp.h is missing -- it would also need to be installed. I'm not sure how long that process would take. This brings me back to my thinking that we should stop allowing the use of system packages... |
@moollaza the system packages issue has just come up again for the Guitar Chords PR as it needs libgd installing. I think we definitely need a system for this.Either a mechanism to get them installed, or a good approach we can use to avoid them. Personally I don't really want to say "sorry, we can't have that cool feature because it relies on X" unless there's absolutely no choice! |
@mintsoft this idea just came to me -- what about a dir/submodule in the Goodies repo that contains the binaries of the system packages? That way they could easily be installed (without sudo or a need to updated apt) and maintained? Or is that ridiculous? Alternatively, a second Goodie's repo is still not a terrible idea. We already have QR-Code in a separate repo... |
Actually there's a few other single-goodie repos, https://github.com/duckduckgo?query=goodie |
Hmm; I'm not sure if the sub-directory is a solution or a larger problem there. The dependencies for a library like GD (for example libc) would also have to be managed, it's not long before you end up with the entire of I didn't even know those repositories existed! Certainly an option though, as it would limit the manhandling trying to get things to work in the main repo. |
Will get big when we add binaries for multiple platforms too!
I think my main problem with separate repos (now that we're getting a lot) is that people don't see them. Too fragmented. I don't think we should move the IAs that need MPFR and Guitar Chords somewhere else just because Travis Docker can't use them. I think as long as we can install it on TravisCI + Codio we shouldn't do anything. |
@jagtalon I know what you mean, it feels like a difficult balance to get right. If I (for example) created a new goodie that had a requirement on a system module etc I presume there are implications for the live environment as well as Travis and dev. Out of curiosity, how is that handled? Is there something we can adapt for duckpan/Travis? |
@moollaza We might be limited to what TravisCI can do similar to duckduckgo/zeroclickinfo-spice#1456 can't just edit .travis.yml :/ |
Closing for now. Hopefully we fix this soon! |
Travis offers a new, faster infrastructure that uses Docker. The only downside is that it doesn't allow for
sudo
access.This PR cleans up the dist.ini (we have duplicate commands in the dist and travis.yml file) and updates travis.yml to install our only system dependency, GNU MPFR, via a shell script, to avoid the use of
sudo
Travis also allows for caching of folders and packages, we could potentially cache the CPAN packages but I'm not sure about that