Question

my team is currently using buildbot to automate overnight and continuous-integration builds and regression tests. For builds and unit tests, the builder just invokes a script which syncs the sources from p4 and then runs xcodebuild. The regression tests are also launched by a shell script, and are themselves combinations of shell scripts and AppleScripts. The builds are all performed on one system but then buildbot triggers tests to happen on multiple Macs, with different architecture and OS combinations. The things I like about buildbot are the automatic triggers (so the tests run only if and when the build succeeds), and the reporting including the waterfall view to see the overall status.

However, I see a number of problems too. The "master" process which coordinates the builds is either leaky or just has a huge working set which means that it consumes a couple of gigabytes of memory. Occasionally network problems mean that a slave will be lost; rather than retrying later it will just fail the build. In fact if the slave is supposed to be triggered for a dependent build, it will fail the first build after it has otherwise successfully completed.

So what are the rest of you using to automate your Xcode builds and unit tests? How do those solutions work for you? Anything you would recommend?

Was it helpful?

Solution

I use TeamCity in a windows environment but I believe it will work on Mac and has xcode build agents.

Another similar question here.

OTHER TIPS

Our team use Hudson with a script which converts the Unit Test output from XCode to NUnit format.

I know this is an older question, but for those using TFS to hold their Xcode projects, I created a custom build activity to make automating Xcode builds via TFS easier. The code is hosted on Codeplex here: http://tfsxcodebuild.codeplex.com/.

Hope someone finds it useful!

We worked out what was using all the memory - log files - older buildbot keeps all logs forever and keeps them in memory (possibly until a restart).

Newer buildbot can be configured to keep a fixed amount of history.

Buildbot build log files should be limited in size to avoid the problem.

I use the XcodeBuilder that's part of CruiseControl. Of course it helps that I wrote it. :)

But I did use it on a real multiple person project for an iPhone app (Surf) that's for sale in the app store.

Now that it's three years later I have my own answer to provide to this question. I'm using Jenkins, mainly for the plug-ins that it provides. It has a plug-in for building targets in Xcode projects (or schemes in workspaces). There's a plug-in to run the Clang static analyzer. It interfaces with my bug-tracker system, it'll automatically push builds to Testflight too.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top