Andy
Andy

Reputation: 8562

Xamarin iOS project & build server

I'm trying to determine how we can build our Xamarin iOS project while keeping the artifacts with the other projects build. All of our code is in a single solution, and we have multiple UI projects (WinForms, website, and the Xamarin projects for UWP, W8.1/WP8.1 and Android). Our TeamCity (10) server is hosted on Windows, which can build everything except the iOS project which must be done on a Mac.

I have the solution configured to build everything but iOS, and I was able to setup another build configuration to just do the build for iOS using a Mac build agent. Both configurations use the same SVN VCS for a trigger.

While this works, ideally I'd like to be able to combine the artifacts from the iOS configuration into the main configuration's artifacts.

I'd also ensure that both builds always build from the same source. It looks like I can do that by setting up a snapshot dependency, but then the iOS configuration waits for the main configuration to finish before triggering. Ideally both would run and combine the results in the end.

My question is, how can I accomplish this? It would be great if the compilation steps can occur simultaneously, and the main build would not continue with the unit test / deployment steps if either configuration fails the compilation step. I am open to breaking up the main build configuration further if needed, but the TeamCity server will need to stay on Windows (so doing everything on the Mac is not an option).

Upvotes: 0

Views: 213

Answers (1)

Andy
Andy

Reputation: 8562

I was able to do this by breaking the build up into three separate configurations. One which only did the iOS build, one which build the Windows / Android projects, and a third which then took the dependencies from the two other configurations and continued the build process (such as unit testing, packaging, etc). I had to setup artifact dependences and snapshot dependences for the final build configuration so that everything used the same source.

The iOS and android/Windows builds both get triggered and run in parallel, and the third configuration won't start if either fails.

Upvotes: 0

Related Questions