I guess it’s always good to start with definitions. I will at once kick off with a disclaimer that it’s not the easiest thing to do. Myriads of definitions of varying levels of complexity and scope exist for the term, but I will keep mine simple:
“Dev-Ops, comes from two words development + operations. This suggests that it is a set of practices in a process encapsulating the actual coding and managing operations tasks to achieve agility, velocity through quality, which is only possible with automation technologies.”
Development — getting your hands dirty, writing lines upon lines of code to deliver on a particular project’s requirements, this being done with a clear set of deliverables.
Operations tasks — are those activities that don’t aim to produce anything new, but to maintain and sustain and streamline a system, inclusive of regular testing and deployment of applications. Operations are repetitive and static, and aim to keep everything running, thus the best way to go about all this is via automation.
DevOps offers this. It then implies that this entails an entire cultural paradigm shift in how we go about software development.
A brief point by point breakdown is as follows :
In mobile dev-ops, the focus is on two key processes:
This is a development practice that requires developers to integrate code into a shared repository several times a day.CI systems let you automatically build and test your app every time you commit into a shared repository.
CI tools: Examples include:
GitLab Continuous Integration & Delivery
GitLab CI/CD is a part of GitLab, a web application with an API that stores its state in a database. It manages…
Continuous Integration and Delivery
Get the best continuous integration and delivery platform for Linux, macOS, and Android, in the cloud or self-hosted.
Travis CI - Test and Deploy Your Code with Confidence
Software is automatically deployed for access by the necessary stakeholders once it passes through the continuous integration system. These could be QA ( Quality assurance testers), alpha as well as beta tester if these are set up; then the app, can then reach the target clients.
Automated deployment systems let you automatically deploy your app on the app store or play store (in the case of the mobile apps) every time when you commit into a shared repository or your trigger is fired. This is as opposed to manually generating an APK file / App bundle and manually uploading it to a specific track on the play console.
One of the best mobile CD tools is Fastlane. It offers a super fast and easy way to build and release mobile apps ( both IOS and Android ). For more information on how to get started with Fastlane, click here.
Based on your CI tool of choice, Fastlane offers integrations, so that you can easily plug in Fastlane to your existing process.
This concludes the first part of this article. In the next part, We’ll talk a bit about Android tests as well as setting up the GITLAB CI + FASTLANE combination.