CircleCI 2.0 now offers a powerful engine to run jobs on top of Docker images, which allows you to run whatever you need for your project, not being limited by the supported languages. Also, pipelines and workflows are highly customizable.
Although you can customize the pipelines however you want, having to write everything using YAML is really annoying and if you have a slightly more complicated pipeline, you'll end up with a huge YAML file on your project. Also, their UI needs to be upgraded with features like workflows in mind, as currently you can see a list of recent builds, as in 1.0, but cannot see a list with all previous workflows and which jobs have been ran on them, like in GoCD, for example.
I'm automating the test and deployment of many projects from my open-source organization. CircleCI has proved one of the best free options available due to its free plan to open-source repositories, even for mobile (iOS) projects.