Building a Resume-Boosting Live DevOps Project: Jenkins CI/CD with GitHub Integration

Divya Thawani
2 min readSep 17, 2023

Introduction:

In today’s competitive job market, it’s essential for aspiring DevOps professionals to demonstrate their skills and expertise effectively. One powerful way to do this is by showcasing a live DevOps project on your resume. In this medium post, we will walk you through the creation of an impressive Jenkins CI/CD pipeline integrated with GitHub, providing you with a valuable addition to your resume.

Project Overview:

Our project focuses on setting up a Jenkins CI/CD pipeline for a Node.js application hosted on an AWS EC2 instance. This pipeline will automate the build and deployment process, ensuring a smooth and efficient development workflow.

**Step 1: Setting Up AWS EC2 Instance**

We begin by creating an AWS EC2 instance to host our application. This instance serves as the foundation for our DevOps project, providing a scalable and reliable infrastructure.

  • Update the package repository:
sudo apt update
  • Install OpenJDK 11:
sudo apt install openjdk-11-jre
  • Install Jenkins:
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null 
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins
  • Start and enable Jenkins service:
sudo systemctl enable jenkins
sudo systemctl start jenkins
  • Retrieve the initial admin password:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

**Step 2: Installing Docker and Preparing the Node.js Application**

To containerize our Node.js application and facilitate its deployment, we need to install Docker.

  • Install Docker:
sudo apt install docker.io
  • Dockerfile for Node.js application:
```Dockerfile
FROM node:12.2.0-alpine
WORKDIR app
COPY . .
RUN npm install
EXPOSE 8000
CMD ["node","app.js"]
```
  • Build the Docker image and add your user to the Docker group:
docker build . -t node-app
sudo usermod -a -G docker $USER
  • Run the Docker container:
docker run -d - name node-todo-app -p 8000:8000 todo-node-app

**Step 3: Jenkins Configuration**

Now that our environment is set up, we configure Jenkins to build and deploy our Node.js application automatically.

- Create a Jenkins job and add an “Execute Shell” build step.

  • In the build step, build the Docker image for the application:
docker build . -t node-app-todo
  • Run the Docker container with the updated image:
docker run -d - name node-app-container -p 8000:8000 node-app-todo

Conclusion:

By following these steps, you have successfully created a live DevOps project that showcases your skills in setting up a Jenkins CI/CD pipeline with GitHub integration. This project not only enhances your resume but also demonstrates your ability to automate and streamline software development processes — an invaluable skill for any DevOps professional.

Remember to keep your project up to date with the latest DevOps tools and best practices to stay competitive in the job market. Happy coding!

--

--