What is Jenkins?
Jenkins is an open source tool with plugin built for continuous integration purpose. The principle functionality of Jenkins is to keep a track of version control system and to initiate and monitor a build system if changes occur. It monitors the whole process and provides reports and notifications to alert.
Â
What is continuous integration?
In software development, when multiple developers or teams are working on different segments of same web application, we need to perform integration test by integrating all modules. In order to do that an automated process for each piece of code is performed on daily bases so that all your code get tested.
Â
What is the requirement for using Jenkins?
- A source code repository which is accessible, for instance, a Git repository
- A working build script, e.g., a Maven script, checked into the repository
What are the advantages of Jenkins?
Advantage of Jenkins include:
- At integration stage, build failures are cached
- For each code commit changes an automatic build report notification generates
- To notify developers about build report success or failure, it is integrated with LDAP mail server
- Achieves continuous integration agile development and test driven development
- With simple steps, maven release project is automated
- Easy tracking of bugs at early stage in development environment than production
How you can move or copy Jenkins from one server to another?
- Slide a job from one installation of Jenkins to another by copying the related job directory
- Make a copy of an already existing job by making clone of a job directory by a different name
- Renaming an existing job by renaming a directory.
What are the commands you can use to start Jenkins manually?
To start Jenkins manually, you can use either of the following
- (Jenkins_url)/restart: Forces a restart without waiting for builds to complete
- (Jenkin_url)/safeRestart: Allows all running builds to complete
Mention some of the useful plugins in Jenkin?
Some of the important plugins in Jenkin includes
- Maven 2 project
- Amazon EC2
- HTML publisher
- Copy artifact
- Join
- Green Balls
How you can deploy a custom build of a core plugin?
To deploy a custom field of a core plugin, you have to do following things
- Stop Jenkins
- Copy the custom HPI to $Jenkins_Home/plugins
- Delete the previously expanded plugin directory
- Make an empty file called <plugin>.hpi.pinned
- Start Jenkins
How you can setup Jenkins jobs?
Follow these steps:
- Select new item from the menu.
- After that enter a name for the job and select free-style job.
- Then click OK to create new job in Jenkins.
- The next page enables you to configure your job.
How can you clone a Git repository via Jenkins?
If you want to clone a Git repository via Jenkins, you have to enter the e-mail and user name for your Jenkins system. Switch into your job directory and execute the “git config” command for that.
Which SCM tools Jenkins supports?
- AccuRev
- CVS,
- Subversion,
- Git,
- Mercurial,
- Perforce,
- Clearcase
- RTC
What are the commands you can use to start Jenkins manually?
To start Jenkins: jenkins.exe start
To stop Jenkins: jenkins.exe stop
To restart Jenkins: jenkins.exe restart
Â
How will you secure Jenkins?
The way I secure Jenkins is mentioned below
- Ensure global security is on.
- Ensure that Jenkins is integrated with my company’s user directory with appropriate plugin.
- Ensure that matrix/Project matrix is enabled to fine tune access.
- Automate the process of setting rights/privileges in Jenkins with custom version controlled script.
- Limit physical access to Jenkins data/folders.
- Periodically run security audits on same.
What are the various ways in which build can be scheduled in Jenkins?
You can schedule a build in Jenkins in the following ways:
- By source code management commits
- After completion of other builds
- Can be scheduled to run at specified time (crons)
- Manual Build Requests