uptasticsearch icon indicating copy to clipboard operation
uptasticsearch copied to clipboard

Travis builds are 1hr+

Open jameslamb opened this issue 6 years ago • 2 comments

Our Travis builds these days take around an hour to complete: https://travis-ci.org/UptakeOpenSource/uptasticsearch/builds

Each individual build (one combination of ES version + language) takes around 10 mins to complete. Right now we're spinning up different VMs for each combination of ES version + language, however I think we could actually figure out a much smarter way to do this.

In the past @ngparas had docker-compose'd up a bunch of different ES versions running as different services side-by-side. We had originally NOT done that in our CI because we didn't know how to use docker with Travis. But now I've messed around with it and it's possible:

https://docs.travis-ci.com/user/docker/#using-docker-compose

I think an approach that would cut down our times a lot without sacrificing coverage of integration points could be:

  • One build per operating system
  • Install R and Python side-by-side with conda (see how I did this in doppel-cli as an example)
  • docker-compose up multiple versions of ES
  • run R and Python tests once against each running version

jameslamb avatar Jan 30 '19 17:01 jameslamb

Another idea we could try....we could figure out how to use Travis to do releases and then say:

  • normal PRs only test against the current stable version of ES
  • releases test against all legacy versions

jameslamb avatar Jan 30 '19 18:01 jameslamb

Should also clarify that our R BUILDS are around 10mins each. Python is closer to like 1 minute each. This is just because there are a TON of packages you have to install to setup CI for R :/ plus devtools recursively installs all suggests unless you're really careful.

So it's possible we could look more closely at our install.packages() calls and figure out how to reduce the number of packages being installed.

jameslamb avatar Jan 30 '19 18:01 jameslamb