CI/CD Pipeline Adoption using

Azure DevOps

Client Profile

Our client is a leading property development company based in the Middle East. The company provides property development and management services across the Middle East, Asia, Europe, and North America.

Category

Microsoft

Project Overview

The client’s flagship Property Management application gives property owners the ability to initiate service and amenity requests with quick access to payments, title deeds, and buyer registration. However, their software development life cycle process incurred release cycles that took several months to complete. The client wanted to improve their code integration and build delivery mechanisms to optimize productivity.

Click Above to View Pdf

Business Challenges

  • Conflict resolution due to delayed code integration cost the development team a significant amount of time
  • Creating builds for different environments was another challenge
  • The error-prone manual process involved multiple steps and led to a mismatch in build number, environment, and certificate

THE MAVA PARTNERS SOLUTION

We proposed a continuous integration, delivery, and deployment strategy for the project using Azure DevOps. Collectively known as CI/CD, continuous integration, delivery, and deployment form an integral part of modern development intended to reduce errors during integration and deployment while stepping up project velocity. The CI/CD philosophy and practices are augmented by robust tooling capabilities that automate testing at each stage of the software pipeline. By incorporating these practices, we were able to reduce the time required to integrate changes and test each change before moving into production.

Technologies

  • Azure DevOps
  • SonarQube
  • Fastlane

Positive Outcomes for Business

  • Faster and reliable software delivery with value addition in terms of delivery quality and process efficiency
  • Significantly reduced effort by the development team in generating builds
  • Reduced dependency between QA team and development team with the QA team also generating builds; hence reduced delay
  • Reduced number of errors because of automation
  • Faster deployment and configuration of resources in a reliable and repeatable manner

Azure DevOps was selected as CI/CD platform because of the following factors:

  • Highly configurable pipeline
  • Availability of different cloud-based Mac machines with multiple Xcode versions
  • Availability of third-party plugins for integrations
  • Azure DevOps was already being used for project management

Processes followed as part of each Pull Request (PR):

  • Static Code Analysis ‒ using Sonar Cloud (changes only)
  • Code Compilation ‒ on the incoming branch
  • Unit Testing ‒ on the incoming branch

Each merge to develop branch triggers the following:

  • Static Code Analysis ‒ using Sonar Cloud (full)
  • Unit Testing ‒ develop branch
  • Build and sign ‒ develop branch using Fastlane
  • Upload artifacts ‒ for developer testing using Fastlane

Each merge to QA branch triggers the following:

  • Update QA configuration
  • Build and sign ‒ develop branch using Fastlane
  • Deploy application to QA environment using Fastlane
  • Share the build with the QA team

Each merge to staging branch triggers the following:

  • Update staging configuration
  • Build and sign ‒ develop branch using Fastlane
  • Deploy application to staging environment using Fastlane
  • Share the build with the staging team for Regression Testing and UAT Testing

Each merge to the production branch triggers the following:

  • Update production configuration
  • Build and sign ‒ develop branch using Fastlane
  • Deploy application to the production environment using Fastlane
  • Share the build with the production team for Smoke testing

 

Implementing the CI/CD pipeline ensured consistent and quality code. The Azure Pipeline also provided a quick, easy, and safe way to automate builds, making them ready for use.

Scroll to Top