Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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)?
share|improve this 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... –  dave00 Sep 4 '12 at 8:57

4 Answers 4

up vote 8 down vote accepted

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.

share|improve this answer
    
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.

share|improve this answer
    
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.

share|improve this answer

If you are not incredibly interested in setting up your own CI environment (time and money...), you might want to check out www.cisimple.com. It might help you out with your continuos deployment and integration issues.

share|improve this answer
1  
Welcome to P.SE - please update the answer to explain why you feel this site is worth a referral... "might" is not a good ercommendation –  Andrew Nov 4 '12 at 7:14

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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