13

As a iOS developer, I was looking to create a CI and CCQ (= Continuous Code Quality) infrastructure for the iOS projects we have in development so far. We already use Jenkins and SonarQube for almost all the Web and Android projects (using a VM foreach project, installing and configuring the CI and CCQ is automated) and it works great. But for the iOS projects, Jenkins needs to do the build on a computer running macOS, so I am not sure I have the perfect solution for that.

  • I was looking into a solution to virtualise the macOS. For each project, to create a virtual macOS and install Jenkins as slave there to handle the builds. The solution looked perfect, but it seems it is not legal to have more than 2 VM running with macOS (and of course, only on Mac computer) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> The point 2.B. So this isn't a solution for my case.
  • Another common solution I've read about is to have a Mac computer (maybe a MacMini) that will handle all the builds for all the projects. What do you think about this implementation? How many projects may it handle? Developers may need to do some configurations on their own project (especially in SonarQube), is it safe?
  • Can we have multiple Jenkins and SonarQube instances on the same machine, using different ports? Is this even a solution to be considered or I am talking non-sense?
  • Is there any other viable solution, maybe better than the ones above :) ?

Note: I am not sticking to Jenkins + SonarQube duo, if there are any other tools better suitable for iOS development, please share them with me.

1
  • @Pierre.Vriens: it's Continuous Code Quality. I'm not sure if this is a generally used term, or just SonarQube uses it. :)
    – Dan Bodnar
    Apr 21, 2017 at 12:57

2 Answers 2

10

Is there any other viable solution, maybe better than the ones above :) ?

For Jenkins probably no, due to the license issues you mentioned (you have to run macOS on Apple branded hardware). If you can work with that then it's definitely a solution.

If not, then I'd suggest you to check for a hosted iOS continuous integration system where you don't have to deal with the Apple hardware / licensing, the service will manage it for you, e.g. https://www.bitrise.io

There are also services where you can rent Apple hw and you can configure it any way you like, https://www.macstadium.com is one of them (probably the biggest one).

1
  • 1
    Thanks for the reponse. I am still looking for a solution. I think a MiniMac is the way to go for now.
    – Dan Bodnar
    Apr 21, 2017 at 12:58
2

I think you can also look at new lightweight virtualization for macOS called Anka. Anka Build can make it possible for you to setup a virtualized infrastructure on Apple hardware and enable you to provision macOS Vms on-demand from Jenkins.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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