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.