About The Client :
The client provides transportation services all over the world. The client provides a reservation platform for many transportation companies.
The mobile application developed by the client has a customer base of around 20 Million. The client releases the new application features every two-three weeks.
The requirement was to build the CI/CD pipeline for iOS application deployment.
The pipeline should build the app for multiple environments on schedule and triggers.
The production code should be signed, built and the app should be submitted to AppStore along with the auto-generated screenshots.
The client appointed HUE Digital to automate their existing application development process for iOS and improve productivity.
We conducted the review with their development team to understand the current process and propose a solution that improves the overall performance of the development process.
We proposed a CI/CD solution with Jenkins on AWS EC2 and Fastlane.
Jenkins provides us seamless ways to set up a CI/CD environment for almost any combination of code languages and source code repositories using pipelines.
Fastlane is a Ruby-written CI/CD tool for releasing mobile apps (iOS/Android) to eliminate tedious release tasks.
The Jenkins is responsible for managing the whole pipeline. It fetches the code from the repository, executes the predefined task on schedule or on the trigger.
The proposed pipeline configured for three environments –
- Dev – Bitbucket Webhooks to trigger the build on a dev environment. Jenkins is configured to check (using poll) for the changes in the repository before build.
- QA – Jenkins is preconfigured to build the QA release on the predefined frequency biweekly/weekly etc.
- Prod – Fastlane will be used to manually trigger the release of application app store using app store connect
For production environment, we configured Fastlane to sign the code with a certificate, build and export the app to App Store Connect. This also includes submitting the auto-generated screenshot.
We used AWS CloudWatch and SES to log the event and send the notification to the team about the releases, build completion and deployment.
Our solution has successfully built continuous deployment of the iOS application.
The client can now :
- Run their tests continuously
- Collaborate with teams in a better way
- Can automate the release avoiding the possible mistakes in manual deployment
- Can automatically sign the code for app store release
Moving to Continuous Deployment has changed the client’s development dramatically. The productive has increased significantly and lead to a more stable and better product. Steps like automated testing are helping them to build a better product for their users.