[GSOC 2023 PROJECT IDEA] Building iOS apps with Jenkins

Hi there :wave:

I’ve been playing with CI/CD for mobile apps for more than eight years (mostly with gitlab-ci).
Since last June, I am experimenting with Jenkins to build and publish Android apps, mostly with Docker… but I have not yet started with iOS apps.

The idea is to have a clear status of what can be done with Jenkins for iOS app builds now.
There is no so-to-speak documentation about iOS builds now.
There are a few articles here and there about iOS, but mostly with AWS, which is not what I’m aiming for in the first place.
My goal would be to have a clear guide about how to start CI/CD with Jenkins for iOS apps when you only have one Apple machine.

1 Like

Thank you for this project idea, @poddingue. It seems to be, indeed, a very good candidate.

I have a couple of questions that might help refine it.

  • what is the expected output (artifact) of this project (and sister project with Android) ?
  • what would be a possible work-breakdown-structure ?
  • is this project more “documentation”, or “proof-of-concept”, or “tooling”, “reference architecture”?
  • what kind of skills are required for this project? Or, in another way to put it, what type of skills or knowledge will this project help to improve?

We could organize a public discussion/brainstorm to work on clarifying and giving more substance to this project idea.
Let me know if there is interest (addressing Bruno but also/mainly the Community).

/- Jmm

1 Like

Thank you Jean-Marc. :+1:

The expected output is :

  • A built application thanks to Jenkins and the public repo on GitHub
  • A proposed architecture that would work for almost anyone (so Docker whenever it’s possible, or virtual machines) in a public repo on GitHub
  • At least one blog post explaining how to replicate elsewhere

To me, this project is a mix of documentation, poc, tooling and somehow reference architecture… Sorry for the mess.

I’m looking for somebody who knows the iOS or Android ecosystem and who wants to get involved with Jenkins. No need to know Jenkins to start with, but the mobile ecosystem is a pre-requisite.

I’d love to discuss that with the community.

Just a minor point: it is my understanding (but that could be wrong or outdated) that building (or at the very least signing) an iOS app requires the use of Xcode on macOS. That may make this one more challenging than the Android sister project.

1 Like

Nice to see you back in here Tim.
You’re right, it’s way more challenging, because of the closed ecosystem.
You need to do it on an Apple machine (legally) and with XCode (or XCode tools on the command line).
The machine can be a virtual machine on Apple hardware though.