2015-09-11

Travis Rant

I need to rant.

Travis is Continuous Integration software for GitHub - as you push code to your repository, it builds and tests it for you using a script you configure yourself. It works great...if you're using tech from half a decade ago. It's horribly outdated, and the only solution is to update its software yourself in your script.

I primarily write C++, and I pretty much always use modern C++ (C++11 and C++14). Setting up travis for my projects is an absolute nightmare, and I'm giving up. Travis is falling way behind in the world of C++ and I'm tired of fixing their machines for them.

Travis uses CMake 2.8.7 when CMake 3 has been out for ages.
Travis uses clang 3.4 when clang 3.6 has been out for ages.
Travis uses gcc 4.6.3 when gcc 5 has been out for ages.

It is completely unacceptable. The particular versions of software that Travis uses seem to have been specifically hand-picked so as to make it impossible to compile C++11 or C++14 code. One has to manually update the software either by downloading pre-built binaries to the machines or actually compiling the newer versions from source. This makes the builds take forever and adds so much complexity to the build script that you will spend hours tweaking it until it finally works, not to mention having to research how to do all of it and then repeatedly pushing commits to your repository and waiting for travis to build and fail over and over and rinse and repeat and test your patience. I give up.

I appreciate that Travis is free to use by anyone, but I'm so tired of mucking around with my scripts for hours to work around the mess that is the machines the builds run on. After seeing how Travis has handled the situation, I don't ever want to give them my money.

Thankfully, there are alternatives, and ninjas know how to try them out.

UPDATE: After trying out several alternatives, I realize that pretty much everything has the same issue as Travis and thus Travis really is the best option for me. I've created a developer safehaven - check it out!