rvm / rvm1-ansible

The official ansible RVM role to install and manage your Ruby versions.
MIT License
271 stars 136 forks source link

Show docker-compose output in Travis to address build timeouts #175

Closed derekgottlieb closed 5 years ago

derekgottlieb commented 6 years ago

It takes long enough to build the 6 different distro containers used for tests that Travis is killing the build during docker-compose up. In the Travis output, there's a message "No output has been received in the last 10m0s", which suggests it's killing the job early in part because we're sending all docker-compose output to /dev/null. Try showing all of that output in the hopes of improving build reliability.

derekgottlieb commented 5 years ago

Any thoughts on getting this merged as an interim step while issue 173 is worked? It'd be nice to get a version released that includes the deprecation warning that was addressed in PR 170.

lpaulmp commented 5 years ago

@derekgottlieb I don't see how this fixes the issue but let's see what happen.

derekgottlieb commented 5 years ago

@lpaulmp So my theory based on the Travis logs was it was giving up on the build job since there was no stdout/stderr output for 10 minutes. Since the output from the docker-compose step that was building all those different distro images was being hidden, Travis couldn't tell whether the build was actively still working on something or if it got hung and would never complete. By not hiding all of that output, Travis can detect that the build is still doing something and allows it to continue to run. I've seen this in other CI tools where it decides a build is hung and will go ahead and automatically kill it instead of letting it run until a human notices and kills the job manually.

The builds are still slower than they could be if those images were pre-built and pulled from Docker Hub as-is instead of having to rebuild them every time, but I think this will at least get them back to where they pass reliably instead of getting killed when the test prep takes too long.