Blog_Banner_Asset
    Homebreadcumb forward arrow iconBlogbreadcumb forward arrow iconSoftware Developmentbreadcumb forward arrow iconJenkins Continuous Deployment [With Practical Example]

Jenkins Continuous Deployment [With Practical Example]

Last updated:
28th Dec, 2020
Views
Read Time
7 Mins
share image icon
In this article
Chevron in toc
View All
Jenkins Continuous Deployment [With Practical Example]

Jenkins deployment is an accelerated process of complex automated software development. This article puts light on how Jenkins integrates all development life-cycle processes or DevOps stages such as building, documenting, testing, packaging, staging, deployment, static analysis, and many more, practiced in several organisations.

Today, many organizations are adopting DevOps in their offerings. In the software development life cycle, you must release the software continuously as a part of the project.

Tools such as Jenkins are widely popular for their potential to allow the applications’ continuous integration and delivery regardless of the platform. Jenkins is a free and one source tool that can handle any kind of build in Jenkins deployment, which will be discussed in the article.

Jenkins can be integrated with many testing and deployment technologies. This article describes how Jenkins is used for building and testing your software projects continuously.

Ads of upGrad blog

Check out our free courses to get an edge over the competition

Learn Software engineering online course from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs, or Masters Programs to fast-track your career.

Thus, before diving into how Jenkins works, we need to understand the following topics that are the foundation for learning Jenkins:

  • Continuous deployment
  • Continuous delivery vs continuous deployment
  • A practical example of Jenkins deployment
  • Benefits of Jenkins deployment

Let’s have a look at all of them one by one!

Continuous Deployment

In continuous deployment, the software is released on the production servers continuously with automation. The code passes stages such as source code compilation, validating, review, packaging the application and performing unit testing and integration testing.

The code is then deployed on the test servers when the user acceptance test is performed. The software will be deployed on the production servers for software release. Read about continuous integration with jenkins.

Check out upGrad’s Java Bootcamp

Explore Our Software Development Free Courses

Continuous Delivery vs. Continuous Deployment

Continuous delivery and continuous deployment are two crucial stages of an SDLC in which the continuous delivery does not deploy to production for any changes. The developer needs to assure the code is deployable always and deploy it whenever needed.

Image Credit

Continuous deployment needs every change automatically deployed, without any human arbitration.

In the above diagram, after the continuous integration stages are finished, the application built is automatically deployed on the production servers, which is nothing but constant deployment.

Check out upGrad’s Full Stack Development Bootcamp (JS/MERN) 

Or else, if we are required for human approval to deploy the newer version to automating everything, we are executing a continuous delivery.

Due to this core difference, there have been several implications making each process suitable for different circumstances.

Jenkins

Jenkins is an open-source tool that accelerates the software process through an automation server used to continuously build and test software projects, enabling a CI/CD environment for the developers. It is written in Java thus really portable.

Jenkins has thousands of plugins and integrations. Hence, it is suitable for large projects requiring lots of customization. It supports version control tools such as Git, Maven, Mercurial, and Subversion.

A practical example of Jenkins deployment

Now that we have learned about what kind of tool Jenkins is and can be applied for a software development process for continuous deployment, let us now see how it works in a production environment.

First, Jenkins is set up on a server and a client’s project is added for build and test. The client can then download the application that has undergone testing. Deploying the project assets to a new location on the server can be tricky.


upGrad’s Exclusive Software Development Webinar for you –

SAAS Business – What is So Different?

 

For that, preliminarily, let’s assume a client project is set up on Jenkins, linked to your version control system.

Explore our Popular Software Engineering Courses

Step 1: Creating a Jenkins Item

From the main menu, select ‘New item’ and name it. It will export the files from your client project to a server folder.

Step 2: Creating a post-build action

Go to the client project and select configure. Now,  originate a post-build action and choose ‘archive artifacts’ from the drop-down menu. Add the file types to be archived and exported.

After this, append another post-build action, ‘Build other project’ and enter the build item created before.

Archive

Step 3: Installing the plugin ‘Copy Artifact’

In the third step, you will install the Jenkins’ ‘Copy Artifact plugin’.

Go to ‘Project name’ for configuring and adding a build step. As the Copy Artifact plugin is installed, you will see the option ‘copy artifacts from another project’. Designate the folder to copy the artifacts and set the location path.

Set the location to “var/www/clients/..” . This will create a new folder on the server. Specify the path with an HTTP address(!).

Saving the Project

Step 4: Performing Testing

After the primary stages, now is the time to test the application.

For this, set off a build from the client project. This will prompt a new build. Check the deployment folder on the server. Here, you will see the files deployed.

But, even after all the actions, the build has failed and you got an error ‘FileException’.

Why?

Possible reasons can be:

  • Jenkins did not have the permissions for writing to the folder and is unable to deploy the files.
  • Link SSH to the server.
  • Check the output folder permissions.
  •  You will know, we faced an issue.

Perform the following steps to resolve this:

  1. Add Jenkins to a group, here, the ‘www-data’ group.
  2. Changing the ownership of the output folder to the ‘www-data’ group with the sudo chown command – R: ‘wwwdata’ clients.
  3. Allow write access on the folder with the sudo chmod command .
  4. Restart server and see the application deployed

In-Demand Software Development Skills

What Benefits does Jenkins Offer?

  • Jenkins is an open-source tool and provides excellent community support.
  • Jenkins is relatively easy to install.
  • Jenkins has 1000+ plugins. If a plugin is not available, you can code it easily.
  • Jenkins is free of cost.
  • Jenkins is built with Java; hence, portable to all the major platforms.

Also Read: Jenkins Project Ideas & Topics

Last Words

Jenkins is a robust Java written automation tool that has been widely used for Continuous Integration. With Jenkins, it is easier to build and test software projects continuously with what is written. It is the ultimate tool to deliver your software always by integrating with a large number of testing and deployment technologies.

Read our Popular Articles related to Software Development

Ads of upGrad blog

Learning software development – DevOps with upGrad 

upGrad is offering Advanced Certificate Programme in DevOps from IIIT Bangalore in which you will learn to deliver applications and services at a very high velocity in the organization. The faculty at upGrad will teach you every ins and outs of DevOps and why learning it will make a profitable career for you. 

 

Profile

Rohan Vats

Blog Author
Software Engineering Manager @ upGrad. Passionate about building large scale web apps with delightful experiences. In pursuit of transforming engineers into leaders.

Frequently Asked Questions (FAQs)

1How to make sure your build doesn't break in Jenkins at all?

To make sure your build doesn't break in Jenkins, you should open the console output for the build and see if any file changes were missed during creating the project. If no issues are found, then you should clean and update the local workspace to replicate the issue on the local machine, and try to solve it. To make sure it is not broken, you need to perform a successful clean install on the local machine with all unit tests. This way you can make certain that all code changes are checked in without any problems. After this, you need to synchronize with a repository to make sure that all the required config and changes are checked into the repository.

2What is the use of a role-based strategy plugin?

The role-based strategy plugin strategy enables us to build three types of roles such Global Roles, Project Roles, and Slave Roles. Global roles create admin, job creator, and anonymous, and the user can enable setting overall, job, view, and SCM permissions on a global basis. Slave roles only set node-related permissions whereas Project allows the creation of Job and Run permissions on a project basis. It also assigns these roles to users and user groups. It also extends roles and permissions marching via macro extensions.

3What source code management tools does Jenkin support?

Jenkins supports several source code management tools such as AccuRev, CVS, Git, Perforce, Clear case, RTC, and Subversion. A source code management tool helps to coordinate a software development team's coding work. It is also called the version control system. It helps in tracking source code modifications and maintaining a running history of changes made to a codebase. It helps the programmers or developers to work with accurate and latest code and helps resolve conflicts when code merges from various sources.

Explore Free Courses

Suggested Blogs

Top 14 Technical Courses to Get a Job in IT Field in India [2024]
90952
In this Article, you will learn about top 14 technical courses to get a job in IT. Software Development Data Science Machine Learning Blockchain Mana
Read More

by upGrad

15 Jul 2024

25 Best Django Project Ideas & Topics For Beginners [2024]
143863
What is a Django Project? Django projects with source code are a collection of configurations and files that help with the development of website app
Read More

by Kechit Goyal

11 Jul 2024

Must Read 50 OOPs Interview Questions & Answers For Freshers & Experienced [2024]
124781
Attending a programming interview and wondering what are all the OOP interview questions and discussions you will go through? Before attending an inte
Read More

by Rohan Vats

04 Jul 2024

Understanding Exception Hierarchy in Java Explained
16879
The term ‘Exception’ is short for “exceptional event.” In Java, an Exception is essentially an event that occurs during the ex
Read More

by Pavan Vadapalli

04 Jul 2024

33 Best Computer Science Project Ideas & Topics For Beginners [Latest 2024]
198249
Summary: In this article, you will learn 33 Interesting Computer Science Project Ideas & Topics For Beginners (2024). Best Computer Science Proje
Read More

by Pavan Vadapalli

03 Jul 2024

Loose Coupling vs Tight Coupling in Java: Difference Between Loose Coupling & Tight Coupling
65177
In this article, I aim to provide a profound understanding of coupling in Java, shedding light on its various types through real-world examples, inclu
Read More

by Rohan Vats

02 Jul 2024

Top 58 Coding Interview Questions & Answers 2024 [For Freshers & Experienced]
44556
In coding interviews, a solid understanding of fundamental data structures like arrays, binary trees, hash tables, and linked lists is crucial. Combin
Read More

by Sriram

26 Jun 2024

Top 10 Features & Characteristics of Cloud Computing in 2024
16289
Cloud computing has become very popular these days. Businesses are expanding worldwide as they heavily rely on data. Cloud computing is the only solut
Read More

by Pavan Vadapalli

24 Jun 2024

Top 10 Interesting Engineering Projects Ideas & Topics in 2024
43094
Greetings, fellow engineers! As someone deeply immersed in the world of innovation and problem-solving, I’m excited to share some captivating en
Read More

by Rohit Sharma

13 Jun 2024

Schedule 1:1 free counsellingTalk to Career Expert
icon
footer sticky close icon