Jenkins is the way to automate anything, anywhere

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
Industries: Sales force automation
Programming Languages: ObjectiveC
Version Control Systems: GitLab
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.

"Super flexibility of Jenkins made the difference."
image— Giacomo Gorgellino, IT System Engineer

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