Research for industry use cases of Jenkins and create a blog!!

Rishabh
5 min readMar 12, 2021

ARTH — Task 29 👨🏻‍💻

So my first question is What is Jenkins?

There are many CI/CD tools in the market but Jenkins; the Java-based open-source CI/CD tool tops the popularity list. A small survey conducted by us further escalates Jenkins’ popularity of, leading up to the occasional query of ‘What is Jenkins?’

Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes. Jenkins is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build.
In Other words, Jenkins facilitates the continuous integration and development of software, It makes everything easier by automating parts like Testing, Building and Deployment.
Jenkins is a CI/CD tool and comes under the category of DevOps.

What makes Jenkins so great?

A strong Jenkins community is one of the prime reasons for its popularity. Jenkins is not only extensible but also has a thriving plugin ecosystem.
It has close to 1500+ plugins contributed by the community. Plugins help in customizing the experience with Jenkins, along with providing support for accelerating activities related to building, deploying, and automating a project.

Some of the possible steps that can be performed using Jenkins are:

  • Software build using build systems such as Gradle, Maven, and more.
  • Automation testing using test frameworks such as Nose2, PyTest, Robot, Selenium, and more.
  • Execute test scripts (using Windows terminal, Linux shell, etc.
  • Achieve test results and perform post actions such as printing test reports, and more.
  • Execute test scenarios against different input combinations for obtaining improved test coverage.
  • Continuous Integration (CI) where the artifacts are automatically created and tested. This aids in identification of issues in the product at an early stage of development.

History of Jenkins?

Jenkins has an early mover advantage since it has been in development since 2011. Kohsuke Kawaguchi created Jenkins (then called ‘Hudson’) while working at Sun Microsystems. Hudson was created in summer 2004 and the first release was in February 2005.

After the acquisition of Sun Microsystems by Oracle, a proposal was approved by the Hudson community for creating the Jenkins project. In February 2011, Oracle intended that the development of Hudson should continue hence, Hudson was forked instead of renaming it to Jenkins.

Though Hudson and Jenkins were being developed independently, Jenkins acquired significantly more projects & contributors than Hudson. Consequently, Hudson is no longer maintained by the community.

Jenkins Supports:

Easy installation and configuration, It is Open source, 100% Working plugins, And Easy distribution as well.

What are some Jenkins Use-cases?

Jenkins can be used for many platforms as well as for many languages
For example jenkins can be integrated with the following.
✔JAVA
✔ANDROID
✔PYTHON
✔RUBY
✔C/C++
✔PHP
✔DOCKER, ✔BITBUCKET SERVER, ✔GITHUB
✔CONTINUOUS DELIVERY.

(a)
Jenkins supports building Java projects since its inception, and for a reason! It’s both the language Jenkins is written in, plus the language in use by many if not all the projects Kohsuke Kawaguchi wanted to watch out when he created the tool many years ago.
If you want to build a Java project, there are a bunch of different options. The most typical ones nowadays are generally Apache Maven, or Gradle.

(b) Jenkins and Python:
Unlike compiled languages, Python doesn’t need a “build” per se. Python projects can still benefit greatly from using Jenkins for continuous integration and delivery.

In the Python ecosystem there are tools which can be integrated into Jenkins for testing/reporting such as:

  • nose2 and pytest for executing unit tests and generating JUnit-compatible XML test reports and Cobertura-compatible code coverage reports.

(c) Jenkins and Ruby
Jenkins integrates well with the Ruby toolchain for common tasks that many Ruby developers are already running locally. Tasks such as executing RSpec or Cucumber, generating documentation, running code analysis tools and deploying Ruby software can all be done through Jenkins.

Integrating test results
Many tools, like Cucumber, can natively output JUnit-formatted XML which integrates by default into Jenkins via the “Publish JUnit test result report” Post-build Action. For tools which do not generate the appropriately formatted XML by default, there are gems which add the necessary formatters, such as ci_reporter.

By integrating the test reports into Jenkins, you can generate trends and reports. There are other plugins, such as the Email Ext plugin which can also make use of these machine-readable test reports to send email notifications with only the failing test cases.

(d) Jenkins and Continuous Delivery.
The default interaction model with Jenkins, historically, has been very web UI driven, requiring users to manually create jobs, then manually fill in the details through a web browser. This requires additional effort to create and manage jobs to test and build multiple projects, it also keeps the configuration of a job to build/test/deploy separate from the actual code being built/tested/deployed. This prevents users from applying their existing CI/CD best practices to the job configurations themselves.

Pipeline

With the introduction of the Pipeline plugin, users now can implement a project’s entire build/test/deploy pipeline in a Jenkins-file and store that alongside their code, treating their pipeline as another piece of code checked into source control.

The Pipeline plugin was inspired by the Build Flow plugin but aims to improve upon some concepts explored by Build Flow with features like:

  • the ability to suspend/resume of executing jobs.
  • checking the pipeline definition into source control (Jenkins-file)
  • support for extending the domain specific language with additional, organization specific steps, via the “Shared Libraries” feature.

** Note**
All this information is gathered from the internet and from other blogs, Hence all the credit goes to these guys who have been helping me indirectly.
Hope you guys like it and as always keep on learning and improving.
And Lastly, Would like to thank Mr.Vimal Daga and Mrs.Preeti Daga for providing with such great opportunities.
**Note**

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Rishabh
Rishabh

Written by Rishabh

Student from B.tech 2nd Year, A proud ARTH learner, love new technologies, Curious about many thing, likes to explore places, love eating pizza and much more.

No responses yet

Write a response