I will setup a CI environment for an iOS graphical game app. My working assumption is to use Jenkins.
Of cause Jenkins will be used for basic unit tests, but I plan to go further.
The app can be configured in a mode where AI players play other AI players, and I intend to use that for testing. I want to start the app, in simulator or device, and let the AI players play one match with graphics and all, then exit and report the outcome. I want Jenkins to start the app with a randomized seed, and then report the outcome when the match has finished. Crashes shall of cause be reported as a failed run. I want Jenkins to run matches with new seeds continuously. Day out and day in.
Questions:
- How shall Jenkins interact with my app?
- Shall I communicate via files, or in another way?
- How shall Jenkins detect a crash? Maybe always crash at the end, and return an exit code? Will this also work when running on device?
- Are Jenkins/xcodebuild the tools for the job, or shall I go for the Apple CI engine instead? Personally I prefer Jenkins, because I want to learn a more generic tool.