Reputation:
I've been looking at TFS, TeamCity, Jenkins and Bamboo and to be honest, none of them were convincing. I want
TFS is a mess to configure and work with in general, it doesn't support Git obviously, but it has gated check-ins (although it seems to unnecessarily check out the whole project every time and so it is slow?). Also really lacking in the reporting department.
TeamCity has really bad gated check-in support when it comes to Git, otherwise it's my favorite. Supports a lot of stuff out of the box.
The reporting in Jenkins is bad (historical trends and so on), it seems to have more bugs than the others, and the plugin quality can be scary. On the other hand it's free and versatile. How is the support for Git and gated check-ins?
Bamboo obviously has great Atlassian integration, but no support for gated check-ins. :(
Any advice?
Upvotes: 13
Views: 7024
Reputation: 3771
Upvotes: 3
Reputation: 1306
Chiming in late with this one, but the hosted TFS service is great to use in terms of setup, and it now supports GIT. If you go with an on premise TFS solution and hook it up to SQL Reporting Services you'll get more reports than you can ever imagine. If you go the whole hog and add in SharePoint you get project based wiki sites too.
If you go all in with TFS I think you'd struggle to find anything that can compare really as each part is a major product. Creating bugs in Excel and pushing them to the TFS host is one of the greatest things. No more picky web based UI. and you can plan with MS Project too if that's your bag. In all you'd have Office (Project, Excel) for detailed task creation and management, SharePoint for Wikis, SQL reporting for your reports (code churn, failed build counts etc) and TFS (with GIT) for you source control and glue for the other pieces.
Of course this does mean that you're 100% in the MS ecosystem, and that in itself can be a very scary factor for many. If you just roll with the punches though I've found it to be great. A lot of the negativity is based around the old systems and the general MS perception.
Upvotes: -1
Reputation: 735
Good Question! Extensively broad. Can't compare all the CI products.
So as far as I feel you are in middle of a decision making. So let me help you with few suggestions.
Going through your question, first thing you want is good reporting.
Jenkins can be used for very interactive reporting. There are several plugins that allow Jenkins to customize the format of the report. You can define a HTML Template also and you can then get a customized, properly formatted, covering almost all aspects of your requirement of a report. That can also be e-mailed to concerned people/also to the committers and culprits!
Next you want good git support: Jenkins provides great Git support. There are several plugins available for Git (Ex. Github Plugin). As you fear that it have more bugs and plugin quality can be scary, but then no software is bug free! And recently Jenkins released a stable version 1.478 which is free of lots of previous bugs (I am using 1.401 and I havn't come across even a single bug in past 10 months). I believe Jenkins is continuously improving and there is continuous development of new plugins extending its usage and scope. If your project requires to be extended in future then Jenkins can be of great usage.
Gated/delayed Check-in: As far as I know Jenkins can be used for Gated/Delayed Check-ins/Commits (not sure but I will keep you posted if I came across any such information). |Done a bit of research over it and I realized that its a property of SVN and it is not related to Jenkins, so if your SVN supports gated/delayed check-in than you don't have to worry about it as Jenkins is just a medium for accessing it.|
Jenkins don't require you to use command line scripts unless your project require it. A non developer can also "Manage Jenkins"! Its easy to configure and use as it has a great UI and it have lots of help available online.
Jenkins is developed in Java, so plugin development is also easy. According to your need you can write your own plugin and extend its functionality.
Jenkins can be easily integrated with Atlassian products also (Several plugins are available for integrating different Atlassian products to Jenkins. Ex. JIRA Plugin )(don't know yet about Visual Studio).
Upvotes: 2
Reputation: 4023
I'm using TFS 2012 Express. I never used previous TFS versions as they looked to me like a mess to setup and administer but they improved a lot with this latest version. Please see the presentation on http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV346
Upvotes: 0
Reputation: 2481
@arex1337 All the answers here provided have their merits. Experience tells us no project/organization is ever happy with a single vendor for all their needs. What you may probably end up having is a base CI tool with a mix of plugins/additions from other vendors who their own USPs.
As an example :
Jenkins as a base tool. @Aura and @sti have already mentioned all the good things; while we can agree the plugin development is a little uncontrolled, there are still a lot of them out there which provide excellent quality. The main thing being the community is active, really agile (they have 1 release per week normally) and any problems you might have are easily solved. Additional benefit being easy plugin development so if if push comes to shove, you can write your own.
@Mark O'Connor is bang on with the SONAR suggestion. One of the best ones you can get in terms of reporting and get cool reports. And @Thomas has cleared the air about gated commits
Good reporting - You got it with SONAR+Jenkins
Good Git support - Jenkins gives that
Gated/delayed check-in/commit - Jenkins Gerrit plugin
Integration with Visual Studio and/or Atlassian products - The Jenkins wiki itself runs on Atlassian. Here is a list of some integrations already there
Clover , Crowd , Confluence, JIRA : Plugin1 Plugin2 Plugin3
Shouldn't require regular developers to use CLI - Jenkins doesn't
Now you may replace Jenkins with Bamboo in the above example and might come close to what you want. But as of now it seems your best bet is Jenkins.
TFS and TeamCity : There are not yet there in the league of Jenkins and Bamboo.
Upvotes: 5
Reputation: 1566
Have you looked at Gerrit?
It's based on Git, has gated commits (at least if I understand correctly what you mean by the term gated commits) and has really nice review features.
You can integrate Gerrit into Jenkins with this plugin, but I'm not sure about Atlassian and Visual Studio.
Upvotes: 2
Reputation: 11075
The Jenkins Git plugin can support gated commits. Check the description on the Git plugin wiki page
What kind of reporting you are looking for? Jenkins has various RSS feeds and historic trends. There are a few plugins that add some reporting. Also, there is Plot plugin which makes it easy(ish) to make your own graphs. Or maybe the reports from the Warnings plugin is what you are looking for.
Upvotes: 1