Building an IOS App in the Cloud
Submitted By Jenkins User Giacomo Gorgellino
With the threat of having to abandon Jenkins, this IT consultancy embraced it and can now build and deploy faster and without investing in more hardware.
Organization: IT Consultancy
Industry: Sales force automation
Programming Language: ObjectiveC
Platform: Linux, MacOS, Azure DevOps
Version Control System: GitLab
Build Tool: Xcode
Community Support: Jenkins.io websites & blogs
Rather than abandon Jenkins, this Italian IT consultancy
opted to improve with Jenkins.
Background: Our company is an IT consultancy firm specialised in the automation and optimisation of trade processes of Italian and international brands operating within various sectors. We’re bridging the gap between the strategy and implementation of different sales channels through integrated, scalable and user-friendly solutions that allow the entire trade process to be maximized. That said, we faced the problem that building IOS apps using on-prem hardware was expensive and not scalable enough. We found in Azure DevOps pipelines the possibility to build using MacOS nodes-as-a-service, without the burden of maintenance. But on the first sight that would mean we had to abandon Jenkins although only for IOS related pipelines. As we already use Jenkins for other workloads, and we wanted to keep a unique place of control for all our pipelines.
Goals: To relieve developers from the process of build and deploy.
Solution & Results: We decided to use our on-prem Jenkins cluster to orchestrate and drive Azure DevOps Pipelines. We wrote a Jenkins pipeline that checks out sources from our local Gitlab repository and to push them to the remote git in Azure. The pipeline then checks if Azure DevOps is already running a new build for the same commit-id. If it’s not running, the pipeline triggers a new build on Azure DevOps.
To do this we use az-cli inside a docker container. Jenkins then waits for the build to complete, fetches the compiled artifact, pushes it to our internal repository and sends a notification to the Quality Team for Acceptance testing.
We rely on the flexibility of Jenkins scripted pipelines and the central management of security credentials. Super flexibility of Jenkins made the difference. Here are the results thus far!
- We can build without buying and maintaining expensive hardware
- We have freed developer time from repetitive actions
- Our development release cycles have been shortened from days to hours