>
Tech Blogs>
How Kristal.AI built the iOS app CI/CD pipeline and saved up to 2 hours of developersโ time dailyKristal.AI is a digital wealth platform that aims to provide private banking solutions through transparent access to investment and services, which are traditionally reserved for the Ultra-high net worth. We leverage technology, algorithms, and human expertise to help clients with portfolio allocations and optimization. We are licensed and operational in Singapore, Hong Kong, and India.At the center of Kristal.AI, sits the 35 person engineering team. While small in number, for building and managing our digital wealth management platform. We are the tech-savvy ones and love to try different things to improve the performance, scalability, and reliability of the platform.Amongst other things, the team is driven by this simple motto:"Some things are meant to be done by machines."-โVineeth Narasimhan, Co-Founder & CTO, Kristal.AI.Hereโs the journey of how we built our iOS app CI/CD pipeline using Github Actions.
Before we discovered the magic of GitHub Actions, we used to manually attach the QA iOS device and give the build via Xcode. This made sense to our use case at that time since it saved time, rather than going through the DevOps route.Then with the pandemic and WFH situation, we were forced to rethink this approach as we could no longer give the build manually.We tried a number of things. While all of them worked fine in the short term, none of them emerged as a viable permanent solution.Below is a non-exhaustive list of everything we tried and why it failed.Our non-tech readers can gladly skip to the next section, where we talk about what actually worked and how it benefited us.1. We started giving builds via TestFlight. Why it failed: It took a lot of time for a build to upload and be available to QA, thereby eating up time even for small changes.2. We then tried out giving Ad hoc builds for our internal testing which saved us some time. Why it failed: The developer had to manually upload the .ipa file to our S3 bucket via Jenkins which was taking up the developerโs time.3. Then we moved to Fastlane deployments. This really saved the manual upload of the build to S3 time every time. Why it failed: It was still going via the developerโs system. It would take around 40 minutes for Fastlane to Build and Upload to S3 automatically. That meant the developer was blocked off work during these 40 minutes. We gave 2โ3 builds daily, which meant about 2 hours of our developerโs dev time daily. Also, our app build was now fully dependant on that developerโs system. What if the developer is on leave or his/her system crashes?4. We then thought of installing a Mac Mini in our office premises and install this Fastlane workflow on that machine and use Jenkins to trigger builds. Why it failed: It was difficult to monitor the Mac Mini remotely and the internet might not always be stable 24/7. It would also be very difficult to debug the Mac Mini system remotely in case of any issues in the setup.5. AWS recently launched their macOS machines in cloud Why it failed: They were too costly to be used for the build and would not have justified our budget.After trying out multiple solutions, we finally decided on Github Actions. It was a much more integrated solution and best suited for our use case. It was also the solution that best suited our budget. Now all our staging and prod builds automatically go via Github Actions.In a later section, we get into the details of how we implemented this development. But first let's take a look at how this benefited the platform, the team, and the business overall:
Now to the tech-y part of the article. The Implementation. Hereโs how the team implemented this development, broken down into 3 Jobs:
In a Nutshell :
Workflow Steps Overview :
Workflow In-DepthSummary: This workflow is aimed at providing IOS build for testing on a daily purpose. The jobs are run synchronously.No of jobs in the workflow : 3No of machines used: 2 (macOS and Ubuntu)Job 1 Steps (Build) :
Job 2 Steps (Uploading to S3) :
Job 3 Steps (Uploading to BrowserStack) :
Job 4 Steps (Uploading to TestFlight) :
CI/CD is a must in todayโs world which really enhances your tech stack. It really saves a lot of boring, repetitive tasks that can be easily done by machines and also is very cost-effective.
By
Dhruv Jindal
July 7, 2021
Liked it?
Share it with your friends & colleagues!
A fully digital onboarding process that can be completed within 15 minutes.
No more voluminous paperwork and queuing!
I understand the financial products and would want to proceed with investing without a financial guide
Proceed