Skip to content
This repository has been archived by the owner on Oct 15, 2022. It is now read-only.

Update Travis to use faster container-based (Docker) infrastructure #877

Closed
wants to merge 4 commits into from

Conversation

moollaza
Copy link
Member

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

@moollaza
Copy link
Member Author

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...

@mintsoft
Copy link
Collaborator

@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!

@moollaza
Copy link
Member Author

@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...

@moollaza
Copy link
Member Author

Actually there's a few other single-goodie repos, https://github.com/duckduckgo?query=goodie

@mintsoft
Copy link
Collaborator

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 /usr/lib in there!

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.

@jagtalon
Copy link
Member

@moollaza @mintsoft

Goodies repo that contains the binaries of the system packages

Will get big when we add binaries for multiple platforms too!

Actually there's a few other single-goodie repos

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.

@mintsoft
Copy link
Collaborator

@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 moollaza changed the title Update Travis to use faster cintainer-based (Docker) infrastructure Update Travis to use faster container-based (Docker) infrastructure Jan 16, 2015
@jagtalon
Copy link
Member

@mintsoft currently we have our own repo using Pinto although @malbin might have more insight into this problem

@jagtalon
Copy link
Member

@moollaza We might be limited to what TravisCI can do similar to duckduckgo/zeroclickinfo-spice#1456 can't just edit .travis.yml :/

@moollaza
Copy link
Member Author

Closing for now. Hopefully we fix this soon!

@moollaza moollaza closed this Jan 30, 2015
@moollaza moollaza deleted the zaahir/travis-docker branch January 30, 2015 16:25
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants