Ci/CD In Devops


I’ve started learning CI/CD (Continuous Integration and Continuous Deployment/Delivery) — a must-know process in modern DevOps for automating code building, testing, and deploying.
📌 What is CI/CD?
CI/CD stands for:
Continuous Integration (CI) – Automatically building and testing code every time a developer pushes code to the repo.
Continuous Deployment/Delivery (CD) – Automatically releasing code to production or staging after passing tests.
CI/CD helps in:
✅ Reducing manual work
✅ Detecting bugs early
✅ Faster and more reliable software delivery
🔧 Most Commonly Used CI/CD Tools
Tool | Description |
Jenkins | Open-source automation server for building and deploying pipelines |
GitHub Actions | CI/CD workflows built into GitHub repositories |
GitLab CI/CD | Integrated with GitLab to run pipelines and deployments |
CircleCI | Cloud-first CI/CD tool with container and Docker support |
Travis CI | Easy integration with GitHub and open-source-friendly |
Bitbucket Pipelines | Simple YAML-based CI/CD in Bitbucket environment |
AWS CodePipeline | AWS-native CI/CD service for automated release pipelines |
I’m first exploring Jenkins as my entry point into CI/CD tools.
It’s one of the most popular and flexible tools used for automating software build and deployment. Jenkins is an open-source automation server used to build, test, and deploy code continuously.
What I Learned About Jenkins
Main Components of Jenkins (Simplified)
1️⃣ Jenkins Master
Central controller of Jenkins.
Manages jobs, agents, plugins, and security.
2️⃣ Jenkins Agents
Workers that run build/test jobs.
Help distribute workload across machines.
3️⃣ Plugins
Add extra features to Jenkins.
Used for Git, build tools, notifications, reports, etc.
4️⃣ Jobs
Define tasks like build, test, deploy.
Configurable via UI or Jenkinsfile.
5️⃣ Pipeline
Scripted flow of CI/CD stages.
Written in code (
Jenkinsfile
) for versioning and flexibility.
My First 3 Jenkins Practice Tasks
1️⃣ Execute Shell Command Job
I created a simple freestyle project that runs shell commands to verify Jenkins is working as expected. This helped me understand how Jenkins executes scripts and displays output in the console.
2️⃣ Parameterized Job
In this task, I explored how to use input parameters in a Jenkins job. I set up a string parameter and used it dynamically within the shell execution step. This is useful when you want to pass custom values during build time.
3️⃣ Git Integration with Auto Trigger on Commit
Objective:
Connect Jenkins with GitHub and trigger job on every code update.Trigger Used:
Used Poll SCM to check for changes in the repo.
It automatically pulls the latest code if a commit is detected.
Note for Production:
In production, GitHub Webhooks are preferred (they trigger instantly).
I used Poll SCM temporarily for learning purposes.
Cron Expression (Poll SCM):
Jenkins uses cron syntax to define when polling should happen.
* * * * *
→ runs the job every minute (used for testing).Learned how cron jobs work with time-based triggers.
this is my test repo link - https://github.com/DheerenGaud/abc
Reference
https://www.wallarm.com/what/what-is-ci-cd-concept-how-can-it-work
https://www.youtube.com/watch?v=NVaP8qtLm6Q&t=399s
https://labex.io/questions/what-are-the-main-components-of-jenkins-7771
Subscribe to my newsletter
Read articles from Dheeren Gaud directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Dheeren Gaud
Dheeren Gaud
Hi, I'm Dheeren — currently pursuing my Bachelor's degree in Information Technology from Father Agnel College (FCRIT). I have a deep interest in web development, especially in the MERN stack, and have worked on several projects including MY-docs, Predictive Maintenance systems, a WhatsApp clone, and custom chatbot applications. Over time, I’ve developed strong skills in Java, data structures, and algorithms, and I’m always excited to solve complex problems through technology. Recently, I’ve become very interested in DevOps and am actively learning tools and technologies like Docker, Kubernetes, CI/CD pipelines, and cloud platforms to enhance my development and deployment workflows. I’ve also participated in national-level hackathons such as SIH, Terna, Kongsberg Maritime, and NIT Jalandhar, and was fortunate to achieve recognition in some of them. These experiences have helped shape my collaborative, problem-solving, and quick-learning mindset. Always open to learning, collaborating, and building impactful solutions!