Automating an IOS CI/CD pipeline

We are currently developing an IOS app for a client using React Native. We are using the AWS technology stack as the backend with Amplify, Aurora Serverless, Code Commit, and various other AWS services. Our DevOps team attempted to automate a continuous integration (CI) continuous delivery (CD) process and faced some challenges. I will note what we tried and the issues we faced, both financial and technical, and see if anyone has other suggestions.

The software development and DevOps teams are working remotely and distributed across multiple countries. In order to create the iOS app build, we needed a virtual Mac server to install Xcode and the required dependencies to create the build file. We looked at an AWS EC2 Instance with MacOS but the costs at $2,000/month were too high for our client. So we started looking for third-party solutions that provided IOS app build service as well as CI/CD pipelines. We looked at CodeMagic, CircleCI, and Semaphore CI and concluded that CodeMagic was the only choice because the others did not support AWS CodeCommit. Codemagic also provided both build functionality as well as pipelines to Apple Connect. Additionally, CodeMagic is free for a single user with 500 minutes of build time with Xcode running on a Mac Mini, which works fine for our initial setup and development. Since we are below that threshold, it’s free for now.

DevOps easily integrated CodeMagic with AWS Code Commit with a very simple process. But then tried to configure a webhook for automated builds but was unable to connect. CodeMagic tech support said that at the moment they do not support continuous integration when connected to AWS CodeCommit. However, our team is already working on adding the webhook support and it will be featured shortly!!

The idea was to fully automate the process but we ran into two problems. 1. Code Magic does not fully support AWS. We have to fetch the code manually. 2. AWS does not support IOS builds and pipelines. So at this point, our DevOps team is manually triggering the builds.

Update 11/28: CodeMagic is now supporting webhooks for AWS Code Commit. I will report back if this allows us to automate the build process.

Contact us if you need help automating your virtual IOS pipeline.