Jenkins is a software that allows continuous integration. Jenkins will be installed on a server where the central build will take place.Use Jenkins 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. It also allows you to continuously deliver your software by providing powerful ways to define your build pipelines and integrating with a large number of testing and deployment technologies.
Along with Jenkins, sometimes, one might also see the association of Hudson. Hudson is a very popular open-source Java-based continuous integration tool developed by Sun Microsystems which was later acquired by Oracle. After the acquisition of Sun by Oracle, a fork was created from the Hudson source code, which brought about the introduction of Jenkins.
It is a development practice that requires developers to integrate code into a shared repository at regular intervals. This concept was meant to remove the problem of finding later occurrence of issues in the build lifecycle. Continuous integration requires the developers to have frequent builds.
Features of Jenkins:
- Easy Installation
- Easy Upgrade
- View Filters
- Amazon EC2
- HTML publisher
- Throttle Builds
Jenkins comes as a WAR file (there are also a wide variety of Linux packages available and a Windows installer) that you can drop into your favourite JEE container (Tomcat, Jetty, Glassfish etc.) or you can start the WAR file directly with
java -jar jenkins.war. Just run java -jar jenkins.war, deploy it in a servlet container. No additional install, no database. Prefer an installer or native package.
The upgrade process itself is super easy. It does not matter if you are using Linux, Mac OS or Windows; there is a single, easy way for upgrades built into the product itself. Jenkins can be configured entirely from its friendly web GUI with extensive on-the-fly error checks and inline help.
Inclined to build a profession as Jenkins Developer? Then here is the blog post on, explore Jenkins Training
This plugin takes the idea of the script console one step further and allows you to ease your daily work with the Jenkins script console.
save/edit groovy scripts
select the node to execute the script on
download scripts from a shared catalog
scripts repo is exposed via git, push/pull scripts into scriptler
This plugin allows you to take advantage of Maven’s features. Jenkins reads your project’s dependencies from your POM and, if those are also built on Jenkins, sets up triggers in such a way that a new build in one of those dependencies will automatically start a new build in this project. Jenkins understands all kinds of dependencies in POM, namely:
- <dependencies> section of your project
- <extensions> section of your project
- <reporting> section of your project
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment.
This plugin is handy with built-in copy to master functionality. Imagine that you have some files generated through your builds that are not actual artifacts.Html Publisher plugin is useful to publish the html reports that your build generates to hudson webpage.
Below are the steps to publish and archive the html report files.
Click on the Configure option for your Hudson job.
In the post build portion, look for the Publish HTML Reports option and select the checkbox. See the screen shot below.
This plugin allows you to group jobs, and allow only some defined number of jobs run concurrently (in most cases, it is one) in the same environment. Take test jobs that use some container instances preinstalled on your master/slaves, for example: this plugin allows you to configure your jobs so that they will run on different slaves or wait for another job to finish before starting.
Jenkins uses a master/slave architecture to manage distributed builds. Your main Jenkins server (the one we have been using up until present) is the master. In a nutshell, the master’s job is to handle scheduling build jobs, dispatching builds to the slaves for the actual execution, monitor the slaves (possibly taking them online and offline as required) and recording and presenting the build results. Even in a distributed architecture, a master instance of Jenkins can also execute build jobs directly.
For an Indepth knowledge on Jenkins, click on below: