Continuous Integration Servers

JavaContinuous Integration

Java Problem Overview


My company is considering changing continuous integration servers (I won't say which one we have now, so I won't skew your responses in anyway :) ) I wondering if anybody has any recommendations? Best user experience, level of difficulty to maintain, etc...

Our code is all in java, and we use ANT as a build tool.

Java Solutions


Solution 1 - Java

I recently implemented a Hudson server. Having previously used Cruise Control, I am very satisfied with Hudson and very impressed with its ease of setup and use. Adding new projects is infinitely easier than it was with Cruise Control.

Solution 2 - Java

Edit: We use Hudson now.

A while ago I looked into a bunch of these with the following requirements:

  • Java code
  • Ant builds
  • Groovy builds
  • Distributed builds
  • SCM trigger integration
  • http reports
  • smtp reports

The [Continuous Integration Feature Matrix][1] is a great place to start.

I ended up selecting [AnthillPro][2] and am using it successfully, just scratching at the surface of what we can and hope to use it for.

[1]: http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix "CI Feature Matrix"
[2]: http://www.anthillpro.com/html/default.html "AnthillPro"

Solution 3 - Java

Jetbrains TeamCity looked really good when we looked at it. It is java based so should be easy for your teamn to extend, and can do distributed builds etc... There's a freebie version you can evaluate.

Solution 4 - Java

I have been looking into this too and although I initially was looking at CruiseControl, I heard good things about Hudson and decided to give it a try. I am completely blown away by how easy it was to get started (just download and run) and the configuration is done through the GUI so there's no fiddling around with XML config files.

Within minutes I had performed my first Ant build. I now have it running as a Windows service on a server which is available 24/7 both in the office and via VPN. Upgrading is as simple as downloading the new war file and restarting.

Support for junit reports is out of the box. Installing additional plugins is also very easy and I have added plugins for Trac, Cobertura, FindBugs and PMD. Code and test quality is increasing as it's very satisfying to see the trend graphs rising!

I now use it to manage all of my builds for test and production environments. Since I manage several web applications this gives me more time to spend on actual programming. I honestly can't remember how I managed without it.

Solution 5 - Java

Atlassian's Bamboo looks nice but I don't have any experience with it. Looks to be similar in features to Cruise or TeamCity.

Solution 6 - Java

Like some other people here, I really love Hudson.

It is extremly easy to install (it's just a war file to deploy), to configure and to use. In addition, it offers a lot of functionalities that are not always available on others systems (build matrix, master and slaves, security on server or project level...)

The number of existing plugins is quite important now, and creating its own plugin is not that hard...

To finish, this application evolves really fast: we are currently on the 257th release and they made more than 100 releases since one year!

For french people, I wrote a quite complete guide to use Hudson here.

Solution 7 - Java

If you are using Atlassian staff software (e.g. Jira, Clover etc.) Bamboo is your way.

We use it for couple months and I can recommend it. It worth its money.

Solution 8 - Java

If you are not completely sold on Hudson a one click test drive should change your mind.

Click below:

https://hudson.dev.java.net/hudson.jnlp

This will launch Hudson through Java Web Start for a test drive. Once it launches, visit http://localhost:8080/ to get to the dashboard. Any configuration that you do with this Hudson will be stored in ~/.hudson, so your data will survive through Hudson process restart.

If you are using fairly standard tools such as svn and ant/maven - you should have a build up and running in 5 minutes. Different tools and it might take 20 minutes!

See an introduction here:

http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson

Solution 9 - Java

Bamboo works great; if you have cash I'd recommend that. Cruise Control is worth its price; I've never been able to get it to reliably discover that source changes were made and build, nor have I have been able to get it to build manually. The interface and configuration are horribly complex.

Solution 10 - Java

We use Cruise Control. It's got all the features we want and was pretty easy to set up. Integration w/ ANT and SVN is fine.

Con: every once in a while we have to restart the process or the machine as it stops sending out messages for the nightly build. Not sure what that's about but it's just annoying.

Solution 11 - Java

as usual with java world, there is the open source world and the commercial world.

We've already seen pretty good coverage of the various offerings.

Hudson : I don't know of a single other java server offering that is as easy as this to evaluate. java -jar hudson.war -- how easy can it get than that ? NOT only can you use it on windows, you can use it on all the usual java platforms. Ant, Maven and a host of other build platforms are supported.

The best thing about Hudson is the plug-in capability. It is being developed almost continuously. You ask for a feature and it won't take long for it to be done.

I usually don't like sounding like a fanboy, but this app/developer/community sure impresses me.

BR,
~A

Solution 12 - Java

Just a word on the Continuous Integration Feature Matrix: it wasn't collected by the CruiseControl people, it was started on CodeHaus by the DamageControl project and moved to the CruiseControl wiki when DamageControl went into hibernation. The information is largely maintained by the project/product owners or by their fans.

Solution 13 - Java

I guess I will be the first to mention Luntbuild. Aside from the less-than-catchy name, it's a great CI server.

  • Super easy to setup.
  • Web UI for creating/managing your projects and users
  • Support for LOTS of version control systems (I've used it with CVS, SVN, and StarTeam)
  • Pretty slick remote API
  • Relatively high granularity for access control (so you can give clients access to only their builds, and not toher clients' builds)
  • and much much more.

Check out the Live demo. account/password demo/demo

Note: The live demo is a few releases back.

Solution 14 - Java

I am happy with bamboo. I looked at a number of free solutions before settling on it.

Solution 15 - Java

We've used Cruise Control with decent results. We have since started using Maven for the build tool in all our projects. With that came the move to Hudson for CI which is very nice. If you think a move to Maven might be in your future, I'd recommend it. I think Hudson can even be used to call Ant tasks though a Maven wrapper might be in order.

http://hudson-ci.org/

Solution 16 - Java

Thoughtworks Cruise is the commercial offspring of the CruiseControl open source project. Looks very nice, lots of features, distributed builds etc. I don't know what it's extendability is.

Solution 17 - Java

An org I run (openqa.org) has, at one time or another, used just about all of them. In terms of easy setup, go with TeamCity or Bamboo. But in terms of overall reliability, you might want to look at Hudson. I really like JetBrains, but we found TeamCity to get in to weird states after a while, causing our builds to be very unreliable. Too bad, since I love IDEA!

Solution 18 - Java

We've been using http://www.automatedqa.com/products/abs/">Automated Build Studio and have been pretty happy with it. It's a windows app, so you're stuck on a windows build server, but on the plus side it's super easy to set up, maintain and use. You build your process from components via point and click, and can use scripting if none of the components meet your needs.

Solution 19 - Java

Of the few that I've used, Buildbot stands out as the most powerful and flexible. It's not the prettiest, though, if that matters to you.

Solution 20 - Java

I've administered both Bamboo and Hudson, and I would recommend Hudson.

They are both great, but Hudson has better report support, for instance publishing your coverage reports etc. is so much easier inside Hudson.

This is likely to change in the near future, but despite Bamboo's integration w/ JIRA etc. and it's statistics, Hudson, for ease of use and third-party support, is better regardless of dollar amount (it is free, Bamboo is not).

Solution 21 - Java

We use Hudson too and if it wasn't the recession, we would probably use Bamboo and most of the Atlassian products(Bamboo, Crucible, Confluence) together with JIRA.

Solution 22 - Java

I use Continuum for my continuous integration server. No reason other than I was going to hire a development manager who had used at his last assignment so it seemed to make sense to pick something at least one of us was experienced with.

Prior to picking Continuum I had a junior developer spend two weeks trying to get CruiseControl going. However, we got Continuum 1.0 to run first go.

Solution 23 - Java

We are using Zutubi Pulse and it works great for us. It's very easy to use ant has many advanced features.

Solution 24 - Java

We use StarTeam and between Hudson and CruiseControl.NET,CC.NET has some bugs when integrating with StarTeam. It does not seem to recognize the workspace that we define in the config files.

Solution 25 - Java

Last year on the a conference in the USA i first heard about Cruise Control .net on a 1 hour presentation, on my way home in the plain i decided to implement a small POC for our company and succcesfuly done it in less than 5 hours (including all the learning i could have done).

I am using it since than and i must say that i am very pleased with the results, and ease of operation, There are some drawback (E.g. lack of distribution of task across servers scale although you can monitor several servers) i found a a bug in one of the implementation and because it is an open source i could have fixed it very quickly (big advantage) - i created a little [project][1] in codeplex to contain my fixes before i contribute them to the community as a check in. I highly encourage you to look at this platform, also it would be nice if you can say what you actually need.

[1]: http://www.codeplex.com/DavidovitzCCE project

Solution 26 - Java

CruiseControl.NET is much more effective on Windows boxes then the original Java based one. Especially when dedicated build server is not available yet.

Solution 27 - Java

Check out our Parabuild. Compared to free tools, it is very easy to set up and its maintenance overhead is close to zero. it's not free but you get what you pay for.

Solution 28 - Java

Why don't you use a hosted CI service then you don't have to worry about maintenance, costs etc.

MikeCI is a hosted CI service which hosts your builds in the Amazon EC2 and for just $10 per month is a hell of a lot cheaper than maintaining your own CI server.

Give it a go.

Solution 29 - Java

Consider a free hosted CI service at fazend.com. It supports ant.

Solution 30 - Java

You may want to look at it also

http://www.thoughtworks-studios.com/solutions/deployment-management[link text]1

ThoughtWorks Deployment Management Solution combines the power of Twist (Agile testing) with Go (release management).

  • Twist captures the requirements to be tested directly from business users
    and then supports their automation as long-term tests that evolve with the application.

Go helps development and IT operations teams model release
processes and deploy software
repeatably and reliably.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionpfranzaView Question on Stackoverflow
Solution 1 - JavaJoe SkoraView Answer on Stackoverflow
Solution 2 - JavaInstantsoupView Answer on Stackoverflow
Solution 3 - JavacraigbView Answer on Stackoverflow
Solution 4 - JavaCaroline OrrView Answer on Stackoverflow
Solution 5 - JavacraigbView Answer on Stackoverflow
Solution 6 - JavaRomain LinsolasView Answer on Stackoverflow
Solution 7 - JavaFoxyBOAView Answer on Stackoverflow
Solution 8 - JavaPablojimView Answer on Stackoverflow
Solution 9 - Javadavetron5000View Answer on Stackoverflow
Solution 10 - JavaMattView Answer on Stackoverflow
Solution 11 - JavaanjanbView Answer on Stackoverflow
Solution 12 - JavaJeffrey FredrickView Answer on Stackoverflow
Solution 13 - JavaLiggyView Answer on Stackoverflow
Solution 14 - JavaTofuBeerView Answer on Stackoverflow
Solution 15 - Javauser12786View Answer on Stackoverflow
Solution 16 - JavacraigbView Answer on Stackoverflow
Solution 17 - JavaPatrick LightbodyView Answer on Stackoverflow
Solution 18 - JavaJoeri SebrechtsView Answer on Stackoverflow
Solution 19 - JavaKenView Answer on Stackoverflow
Solution 20 - JavabowsieView Answer on Stackoverflow
Solution 21 - JavaJohn DoeView Answer on Stackoverflow
Solution 22 - JavaBrian MatthewsView Answer on Stackoverflow
Solution 23 - JavaPini ReznikView Answer on Stackoverflow
Solution 24 - JavaJosephView Answer on Stackoverflow
Solution 25 - JavaRan DavidovitzView Answer on Stackoverflow
Solution 26 - JavaOleg ZhylinView Answer on Stackoverflow
Solution 27 - JavaSlava ImeshevView Answer on Stackoverflow
Solution 28 - JavaMike JessopView Answer on Stackoverflow
Solution 29 - Javayegor256View Answer on Stackoverflow
Solution 30 - JavaNaVView Answer on Stackoverflow