[personal profile] subhangi_1234
Hello everyone!


This is the second blog of my Outreachy series. It has been two weeks since my internship started with the Fedora Community and I’m really enjoying the learning process throughout the duration. This week we are encouraged to write on the blog prompt: “Everybody struggles” and to introduce an open-source vocabulary term that we are not aware of before.

So, coming down to a vocabulary term, let’s see what Pipelines are!

A CI/CD pipeline automates our software delivery process. The pipeline builds code, runs tests (CI), and safely deploys a new version of the application (CD).

Automated pipelines remove manual errors, provide standardized feedback loops to developers, and enable fast product iterations.

CI, short for Continuous Integration, is a software development practice in which all developers merge code changes in a central repository multiple times a day. CD stands for Continuous Delivery, which on top of Continuous Integration adds the practice of automating the entire software release process.

With CI, each change in code triggers an automated build-and-test sequence for the given project, providing feedback to the developer(s) who made the change. The entire CI feedback loop should run in less than 10 minutes.

Continuous Delivery includes infrastructure provisioning and deployment, which may be manual and consist of multiple stages. What’s important is that all these processes are fully automated, with each run fully logged and visible to the entire team.

A pipeline for a simple program
A pipeline can start very simple. Here’s an example of a Go project pipeline:

Compiles the code,
Checks code style, and
Runs automated tests in two parallel jobs

Elements of a CI/CD pipeline

A CI/CD pipeline may sound like overhead, but it isn’t. It’s essentially a runnable specification of the steps that any developer needs to perform to deliver a new version of a software product. In the absence of an automated pipeline, engineers would still need to perform these steps manually, and hence far less productively.

Deployment Pipeline

A Deployment pipeline is a process of taking code from version control and making it readily available to users of your application in an automated fashion. When a team of developers are working on projects or features they need a reliable and efficient way to build, test and deploy their work. Historically, this would have been a manual process involving lots of communication and a lot of human error.

Some months back I was just having a basic idea on these terms but now I have spent much time learning about python packaging, CI/CD pipelines, and building a container with docker file.

But I didn't lose patience and continued to learn in these two weeks about different concepts which will be helpful in my project in the near month like rpm packaging, CI/CD pipelines, and containers. I am researching and learning so that I get proficient in working out the issues related to these concepts and get good hands-on practice.

The internship period is going as a very good learning experience for me where I am being guided by my mentors who always correct me and guide me whenever I get stuck in any part. They always help me with my queries and doubts and have been very supportive throughout.

My belief is no one is born expertise and a perfect developer and coder. It all comes from our continuous learning, practice, sheer hard work, and utmost dedication. So never lose hope and keep learning and exploring. One day you will find your path with correct directions and goals.

Profile

SUBHANGI CHOUDHARY

January 2022

S M T W T F S
      1
2345678
9101112131415
16171819 202122
23242526272829
3031     

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 13th, 2026 01:43 pm
Powered by Dreamwidth Studios