I'm trying to make some positive changes in my company and one of the changes is implementing continuous integration. We do mobile development (iOS/Android) so I need a CI that supports both types of projects. As you can tell I don't know a lot about CI but I've googled a little bit and I think that Jenkins and Hudson are the two most popular.

I have a two part questions.

  1. Your thought on Jenkins?
  2. Is there a way for CI to check if the project is compiling to the
    coding standards (like loose coupling and so on)?

closed as off-topic by Ixrec, GlenH7, Kilian Foth, Bart van Ingen Schenau, gnat Feb 17 '16 at 8:04

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to find or recommend tools, libraries, programming languages, resources (including books, blogs, tutorials, and examples), or projects to undertake are off-topic here as they attract opinionated answers that won't have lasting value to others. You may be able to get help in The Whiteboard, our chat room." – Ixrec, GlenH7, Kilian Foth, Bart van Ingen Schenau
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    "Jenkins and Hudson are the two"... hmm are you aware that Jenkins is the new name for the Hudson? – gnat Mar 24 '12 at 14:08
  • 1
    I really did not know that! As I said, I'm really new to CI and have 0 experience. Soooo.. J & H same thing.. Guess that narrows my options :) – paxx Mar 24 '12 at 14:14
  • There's also Team City, Cruise Control, and others. – Kyle Hodgson Mar 24 '12 at 14:20
  • @gnat : well i think jenkins is a fork of Hudson. I think hudson is still out there: hudson-ci.org managed by Oracle. Jenkins is a very good fork which to most people migrated. Sorry if i'm wrong... – dbalakirev Sep 4 '12 at 8:57

Firstly you might want to go look at TeamCity as another option for your server.

In my view (though I've somewhat less experience with Jenkins than with TeamCity) both are excellent and very capable tools - I'd be happy in an environment using either.

Ok, to get to the meat of the problem i.e.

Is there a way for CI to check if the project is compiling to the coding standards (like loose coupling and so on)?

At the most fundamental level all that a CI server does is run a script and then interpret and present the results of running that script - so if you can script it then your CI server can probably run it and if you can format the output appropriately then the CI server can probably interpret and report on the result.

Of course the major build servers are already capable of talking to/integrating with a lot of popular tools - so really the question becomes what tooling are you using to check your coding standards and does that integrate with your choice of CI server.

Yes, the CI server brings a lot more to the game in terms of automation than just mindlessly running a script - but at the end of the day that's what its doing.

Just to be clear - I know that a build server does more than just run scripts, its the automation of the process (and in particular the integration with (D)VCS) that adds value - but in answering the "what do I need for a build server" question the answer is "a server and script" everything else flows from there.

  • I used TeamCity quite successfully as my CI server for iOS. I'd imagine it is a no-brainer to use it for Android – sylvanaar Mar 25 '12 at 0:01

I second the TeamCity recommendation -- it is a great product. I can't speak to android as I've got no seat time over there, but I have successfully got iOS projects running in CI thanks two articles (1 2).

The trickiest parts really had to do with getting the mac to run the automated build with the proper keychain and such so you could create a signed app that you could deploy to an iDevice rather than an emulator-only option.

  • Is it possible to install TeamCity onto linux server and then make it handle iOS projects? – paxx Mar 25 '12 at 10:12
  • 1
    TeamCity don't matter, it is the build agent. And for iOS you are going to have to deploy to a mac. Only it has the toolchain. You can probably do some stuff using GNUStep but my suspicion is you'd have a pretty frustrating time with anything non-trivial. – Wyatt Barnett Mar 26 '12 at 14:12

I've set up our company's build server and scripts before using Jenkins where we develop iOS apps. Like many said, CI server is pretty simple and I like Jenkins because it's free/open source and has many plugins like publising coverage reports or github integration.

Not the answer you're looking for? Browse other questions tagged or ask your own question.