JENKINS Interview Questions and Answers
What Is Jenkins ?
Jenkins is a Continuous Integration (CI) server or tool which is written in java. It provides Continuous Integration services for software development, which can be started via command line or web application server. And also, it is happy to know that Jenkins is free software to download and install.
what is continuous integration Explain Briefly ?
Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. It is a process of running your tests on a non-developer (say testers) machine automatically when someone pushes new code into the source repository. The below diagram shows the CI workflow.
In this type of procedure, there is a huge advantage of knowing whether all the jobs (configured project in Jenkins) work properly or not. And also we can get fast feedback. The fast feedback is very important so you will always know, right after you broke the build. In the console, you will get the detailed log messages. From this, you will get to know what the reason for job fail was and you can also get to know how you can revert it back. Using an Artifact Repository in CI server will successfully deploy the built snapshot and release which is available to other developers.
If jobs run occasionally then the problem is that since the last time there will be a lot of code changes might have happened. So it will be hard to figure out which changes introduced the problem. But when it is set to run automatically on every code push then it is always easy to know what and who introduced the problem.
Some of the attractive reasons why you need automate build testing and integration are:
- Developer time is concentrated on work that matters: Most of the work like integration and testing is managed by automated build and testing systems. So the developer’s time is saved without wasting on large-scale error-ridden integrations.
- Software quality is made better: Issues are detected and resolved almost right away which keeps the software in a state where it can be released at any time safely.
- Makes development faster: Most of the integration work is automated. Hence integration issues are less. This saves both time and money over the lifespan of a project.
Continuous Build System can include tools like Jenkins, Bamboo, and Cruise Control, etc. Bamboo has better UX support but it is not a free tool. Jenkins is open source tool, easier to setup and configure and also has a very active plug-in development community which makes it favored. Now, let us dive into the Jenkins tool.
Features of Jenkins?
- Easy to install
- With the help of Jenkins, we can easily detect the bugs in the early stages of development itself, so that we can develop a quality product.
- We can easily integrate Jenkins with version control systems like Git, Subversion SVN etc.,
- Jenkins is flexible, we can easily extend it’s functionality using the plugins.
- We can easily configure Jenkins through Web User Interface (UI).
We can configure Jenkins easily so that developers or concerned authority will get real time notifications on every success/failure build.
What Are the necessity to utilize Jenkins?
Jenkins is a Continuous Integration and Deployment tool. Now a days, client is interested in Agile methodology in which everything should be automated. What Exactly jenkins will do is Jenkins will continously monitor the Git, SVN etc., and If it finds any new change, then it will initiate a build using Maven or Ant and if the build is success then it will deploy it on either on-premise or cloud. If the build is failed, then it will trigger a descriptive mail stating the reason for failure
Aspired to become Jenkins Developer? Explore the post to discover the know-hows on
What Are The Features/Plugins of the Jenkin?
- Easy Installation
- Easy Upgrades
- View Filters
- Throttle Builds
Explain How to clone a Bit Bucket repository with Jenkins
The error you are getting because in the global configuration of Jenkins, the git path is not correct/or not inserted.
That's why Jenkins is unable to run the git command.
Please go to Manage Jenkins-> Configure System Settings. Check for git section and add correct path.
How To Set Up Jenkins for Continuous Development Integration on CentOS 7
Merging code. Coordinating releases. Determining build status. Maintaining updates. If you know the frustration of these processes well enough that the words themselves threaten a headache, you might want to look into Jenkins CI.
Maintaining any project, especially one developed by several team members concurrently and one that might incorporate many functions, components, languages, and environments, is a struggle at the best of times — and at the worst requires a superhuman feat to stay afloat.
Jenkins is here to help. Fundamentally a solution for continuous integration — i.e. the practice of merging all code continually into one central build — Jenkins acts as a headquarters for the operations of your project. It can monitor, regulate, compare, merge, and maintain your project in all its facets.
At its core, Jenkins does two things: automated integration and external build monitoring. This means that it can greatly simplify the process of keeping your code maintainable and keep a close and untiring eye on the quality of your builds, ensuring you don’t end up with nasty surprises when a few of your developers merge their code before it’s ready.
Let’s get down to the nitty gritty and learn exactly what Jenkins looks like and how to use it.
What is the difference between Maven, Ant and Jenkins ?
Maven and Ant are Build Technologies whereas Jenkins is a continuous integration tool.
Which SCM tools Jenkins supports ?
AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase and RTC
What are the various ways in which build can be scheduled in Jenkins ?
Builds can be triggered by source code management commits.
Can be triggered after completion of other builds.
Can be scheduled to run at specified time ( crons )
Manual Build Requests
What is the relation between hudson and Jenkins ?
Hudson was the earlier name and version of current Jenkins. After some issue , the project name was changed from Hudson to Jenkins.
What you do to make sure that your project build doesn't break in Jenkins ?
I make sure that I perform successful clean install on my local machine with all unit tests.
Then I make sure that I check in all code changes.
Then I do a Synchronize with repository to make sure that all required config and POM changes and any difference is checked into the repository.
What you do when you see a broken build for your project in Jenkins ?
I will open the console output for the build and will try to see if any file changes were missed.
If not able to find the issue that way, Will clean and update my local workspace to replicate the problem on my local and will try to solve it.
Interested in mastering Jenkins? Learn more about Jenkins Tutorials in this blog post.
What is the requirement for using Jenkins?
For using Jenkins, you have to need a source code repository which is accessible. For example, a Git repository and a working build script, e.g., a Maven script, checked into the repository.
How to create a backup and copy files in Jenkins?
If you want to create a back-up of your Jenkins setup, just copy the directory that saves all the setting, build artifacts and logs of Jenkins in its home directory. You can also copy a job directory to clone or replicate a job or rename the directory.
What are the two components Jenkins is mainly integrated with?
Jenkins is integrated with these two components:
Version Control system like GIT, SVN
And build tools like Apache Maven.
How can you move or copy Jenkins from one server to another?
Follow these steps to move or copy Jenkins from one server to another:
First, copy the related job directory and slide a job from one installation of Jenkins to another.
Make a copy of an already existing job by making clone of a job directory by a different name.
Renaming an existing job by rename a directory.
For an Indepth knowledge on Jenkins, click on below: