The **SCM system** you use can be essential in making your CI choice.

Using a private/intranet solution, for example, pretty much excludes `CircleCI` and `TravisCI` as these only support cloud-based `GitHub` and/or `Bitbucket`.

`Jenkins` has plugins supporting many SCM systems out there, see http://devops.stackexchange.com/questions/12/which-scm-tools-does-jenkins-support. But using a less popular or a wrapped/customized SCM system may require development of a new plugin.

Also particularities of your **building/testing framework/infrastructure** may matter, for similar reasons (configuration, location/access method and compatibility/support).