Getting Started with Jenkins ๐Ÿ˜ƒ

Getting Started with Jenkins ๐Ÿ˜ƒ

#90DaysofDevOps Challenge - Day 22 & 23

ยท

3 min read

What is Jenkins? Jenkins is an automation tool in software development that helps build, test, and deploy software.

What Is Pipeline? A pipeline is a series of automated build, test, and deployment steps that deliver the application to the target environment. It follows a step-by-step process.

Build: build refers to the process of compiling and assembling source code files and resources into a runnable or executable form of the software application.

A build converts the programming language code into machine-readable code or bytecode, resolves dependency requirements, and packages the software for deployment.

Testing: testing refer to the process of evaluating the behavior, functionality, and quality checking of the software application. It aims to identify defects, errors, or any deviation from the expected behavior of the software.

Deploy: the process of making a software application available and operational in a specific environment. It involves installing, configuring, and running the software in the intended production or testing environment to make it accessible to users.

What is continuous integration? In the software development process, multiple developers share their code by committing it to a shared repository. Jenkins integrates the code from multiple developers, helping to detect integration issues early and ensuring that the software remains in a functional state throughout the development process.

What is Continuous Integration? | PagerDuty

Example: Imagine you have a team of developers working on a web application. They are all working on different features or bug fixes simultaneously. Without CI, each developer would work independently on their own code and might only integrate their changes at the end of the development cycle. This can lead to conflicts and integration issues, making it harder to identify and fix problems.

With CI in place, here's how it would work:

  1. Version Control: Developers use a version control system, such as Git, to manage their code changes. They each work on their own branches, which are isolated environments to develop and test their code.

  2. Central Repository: There is a central repository that holds the main codebase, often referred to as the "master" or "main" branch.

  3. Automated Build and Test: Whenever a developer finishes working on their code changes and is ready to integrate them, they commit their changes to the version control system. This triggers an automated build and test process.

  4. Integration and Testing: The CI server, like Jenkins, pulls the latest code changes from the repository and builds the application from scratch. It then runs a suite of automated tests, including unit tests and possibly integration tests, to ensure that the application is functioning correctly.

  5. Feedback: The CI server provides feedback on the build and test results. If any issues are detected, such as failed tests or code conflicts, the team is notified immediately.

  6. Continuous Improvement: The developers quickly address any issues found and make the necessary adjustments. They integrate their changes frequently, aiming to keep the codebase in a stable and working state.

What is continuous delivery? The process starts after the Continuous integration In CD involves deploying the pre-production-like environment and running the automation testing to ensure the build is ready for release. It focuses on delivering software in a frequent, reliable, and efficient manner, ensuring that it is always in a deployable state.

What is continuous deployment? Continuous Deployment (CD) is an extension of Continuous Delivery (CD) that goes a step further by automating the entire process of deploying software changes to production environments. In Continuous Deployment, every successful code change that passes through the Continuous Integration (CI) and Continuous Delivery stages is automatically deployed to production without manual intervention.

Continuous Delivery vs Deployment vs Integration: What's the Difference? โ€“  BMC Software | Blogs

This Blog covers the basic theory part of the Jenkis, do check out my next blog on the Jenkins project.


Thank you for taking the time to read this article. ๐Ÿ˜Š๐Ÿ“– Hope you found it helpful! ๐ŸŒŸ If you have any questions or want to share your thoughts, feel free to leave a comment below. ๐Ÿ’ฌ Happy learning! ๐ŸŒˆ๐Ÿš€

ย