Is there a way/plugin to integrate the new Xcode service and/or the new Apple CI with Jenkins?
Why?
A main issue with having a Jenkins server + an OSX build slave connected via ssh
is that Unit Tests do not work, as the iOS Simulator needs a graphical environment which is not present in this configuration.
I hope that it is possible to integrate the Xcode service (which supports Unit Testing) with Jenkins.
It could be that using the Apple CI will be enough for my needs, but this question aims at the integration of the Xcode service with Jenkins.
What I do already know
I have experience with the existing Xcode Jenkins plugin, but it seems not to support the brand new Xcode service or the new Apple CI. I'm especially keen on unit testing via CI (which did not work properly over a ssh session with the old way).
What I want to know
I'd like info on the following issues currently not working with Jenkins and an ssh
connected build slave:
- Unit Tests on a headless system
- Acceptance tests with Frank or similar
- Automatic Provisioning Profile updating (Apple CI does that)
And info on things that currently do work fine with Jenkins and an ssh
connected build slave and still should work with an Xcode service integration:
- Builds of different build configurations (Release, Debug, TestFlight) / schemes
- Automatic Build number increment
- (With Jenkins I can set the build number in my project to
${BUILD_NUMBER}
, and Jenkins sets this environment variable according to its build number. When the Apple CI does the builds most probably it will set the build number instead.) - Handling/synchronization of Build number between Jenkins & Apple CI
- (With Jenkins I can set the build number in my project to
- Accessing build products of the Apple CI from different Jenkins Jobs
- e.g. for a Job to upload to TestFlight
- Backup of builds
- Automatic builds on git push to a specific branch
- E-Mail notifications
Some additional questions/hints
- I'm not sure whether the
Apple CI == Xcode service
or if the Apple CI just uses the Xcode service. In the latter case the Xcode service just would be like an intelligent build slave, and Jenkins maybe could use that to do builds and tests, but manage build numbers and products by itself. - I'm aware that the Apple CI is an separate CI, and integrating several CIs with each other is not the most easy or useful way to go. I just fear that the Apple CI is not flexible enough for my needs (see above), and that the old way with Jenkins bears some problems (see above).