At work we use Jenkins on our own server for testing and creating project packages that we use in our custom deploy tool. Working with Jenkins is great, because it's open source, allowing you to tweak things you don't like.
For my open source projects I use Travis CI. Travis makes it ridiculously simple to setup jobs by using a config file called .travis.yml. The interface is really clean as well, making it my choice of CI.