Continuous integration software with support for Git and gated check-in?
Asked Answered
S

7

13

I've been looking at TFS, TeamCity, Jenkins and Bamboo and to be honest, none of them were convincing. I want

  • Good reporting
  • Good Git support
  • Gated/delayed check-in/commit
  • Integration with Visual Studio and/or Atlassian products
  • The solution shouldn't require regular developers to use command line or terminal (Git Extensions FTW)

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?

Skyward answered 28/8, 2012 at 8:25 Comment(0)
C
5

@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


In favor of Jenkins:

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.

Carn answered 5/9, 2012 at 6:43 Comment(0)
H
3
  1. Verigreen is a server side solution for verification of git commits which is somehow similar to Gated Check in of TFS.
    It will push only those commits to protected branch, which are built successfully.
  2. Travis is a CI service used to build and test your app.
Hairbreadth answered 29/3, 2017 at 16:26 Comment(4)
Small comment, Verigreen is not a git plugin, but rather a gated check in system that will keep your protected branch always green. Git users are using it to trigger builds in Jenkins.Apolitical
@Apolitical - yes it's not a git plugin. Edited my answer. It's also not used to trigger jenkin's build, it's something which won't allow failed commits in protected branch. It will also notify the committer that about status.Hairbreadth
Verigreen is triggering Jenkins - this is the way it works. you are supplying a Jenkins job name to the Verigreen properties file. Every commit that the system detects, it triggering the job and monitoring the build for the results, based on the build results, Verigreen decides if to pass the commit to the protected branch or not. Of course this is not whats so powerful in VG, but rather the permutations process that allows dealing with multiple commits and understand what is the problematic commit and removing it. Cheers :-)Apolitical
If you want to learn a bit more about Verigreen, you can check this post: #12484924Apolitical
L
2

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.

Lp answered 28/8, 2012 at 8:32 Comment(3)
Doesn't really seem to fit. By gated commits I mean that commits that don't build and pass unit testing (and possibly other rules) are rejected.Skyward
Yep, that's possible with Gerrit and the Gerrit-Trigger-plugin for Jenkins.Collett
Also look at using Sonar for build reporting. For C# analysis don't bother using the Jenkins Sonar plugin (optimized for Maven builds), instead use the Java runner called by a Jenkins job.Beachcomber
G
2

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).

Gulley answered 2/9, 2012 at 6:58 Comment(1)
thumbs up for Jenkins in my experienceCarn
D
1

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.

Dorcia answered 28/8, 2012 at 21:47 Comment(0)
W
0

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

Woodson answered 6/9, 2012 at 11:5 Comment(0)
I
-1

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.

Invention answered 28/5, 2013 at 18:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.