Basics of CI/CD Pipeline
By: Jaanvi Mattalwar
Tags: Ci Cd Pipeline, Numpy Ninja, Happy Learning

CI and CD stands for continuous integration and continuous delivery/continuous deployment.

What is CI CD Pipeline?

You can think of it as a process which is like a software development lifecycle. In very simple terms, CI is a modern software development practice in which incremental code changes are made frequently and reliably. … The code is then delivered quickly and seamlessly as a part of the CD process.

In short, CI is a set of practices performed as developers are writing code, and CD is a set of practices performed after the code is completed.

Let’s have a look at the Elements or stages in CI CD pipeline.

Just refer the below diagram and you will get a brief overview of how the CI CD pipeline works. The pipeline is a logical demonstration of how software will move along the various phases or stages in this lifecycle before it is delivered to the customer or before it is live on production.

What are these stages? Let’s dive into it to have a look.

Version Control:

When the developer finishes writing their code, the committed code enters the CI/CD part of the pipeline i.e. CI/CD pipeline is triggered by a code repository. They commit it to GitHub repository (a version control system) that will help avoid future confusion.

Build Phase:

The build phase is triggered when new codes are pushed to a repository. This is the second stage of the CI/CD Pipeline in which you merge the source code and its dependencies. It is done mainly to build a runnable instance of software that you can potentially ship to the end-user.

Test Phase:

The testing phase comprises of multiple types of tests, with the most crucial one being unit testing. Unit testing will test the individual units of the product from its source code.

Deployment Phase:

Once the builds have passed the tests, they are moved to the deployment phase then pushed into a test server. This phase allows developers to simulate the product in a production-equivalent environment to examine see the product features.

Automation Testing Phase:

The automation test phase will perform the final tests to qualify the built features before they are deployed to production. Automated and continuous testing is applied in this phase to utilize the builds and make sure there are no bugs remaining.

Production Phase:

Once we’re reasonably satisfied that our product is in good working order, we can send it on to the production server.

Throughout the pipeline, whenever there is an error, feedback will be instantly sent to the development team so that issues are immediately addressed. Code changes to fix bugs will then go through the production pipeline once again

Validation Phase:

After codes or the product passed all the tests without defects, they move on to the production server in the final phase. The constant feedback loop helps make the pipeline a closed process where builds are continuously committed, tested, and deployed to production.

A CI/CD pipeline automates the process of software delivery. It builds code, runs tests, and helps you to safely deploy a new version of the software. CI/CD pipeline reduces manual errors, provides feedback to developers, and allows fast product iterations.

CI/CD pipeline introduces automation and continuous monitoring throughout the lifecycle of a software product. It involves from the integration and testing phase to delivery and deployment. These connected practices are referred as CI/CD pipeline.

What Types of Testing Can You Automate With CI/CD?

The role of automated testing in CI/CD pipelines is as flexible as the pipelines themselves.

For example, we can address the following types of tests:

· API testing

· Load testing

· UI testing

· Regression testing

· Unit and component testing

· Functional testing

· Nonfunctional testing

· Cross-browser testing

Many tests can and should also be run in parallel to increase efficiency.

Developers focused on UI elements and behavior can also leverage cross-browser testing which is exactly what it sounds like: testing a website across various browsers to identify UI anomalies.

Reliable QA pipelines hinge upon the automated systems behind them. These allow for stable integration and delivery on a regular basis.

Why is CI/CD important?

CI/CD pipelines enable a much shorter time to market for new product features, creating happier customers and lowering strain on development.

CI/CD allows organizations to ship software quickly and efficiently. Also, The great increase in overall speed of delivery enabled by CI/CD pipelines improves an organization’s competitive edge.

What makes a good pipeline?

A good CI/CD pipeline is fast, reliable, and accurate. The overall strategy here is to “do more with less” while also increasing output accuracy and efficiency. Automation plays a key role in facilitating the other three facets of great continuous integration and continuous delivery pipelines.

Hope now u all got a brief idea of “How CI CD pipeline works” and what and how to use it .

Happy Learning!!