Jenkins is an source Continuous Integration server capable of orchestrating a chain of actions that help to achieve the Continuous Integration process (and not only) in an automated fashion.

Jenkins is free and is entirely written in Java. Jenkins is a widely used application around the world that has around 300k installations and growing day by day.

It is a server-based application and requires a web server like Apache Tomcat. The reason Jenkins became so popular is that of its monitoring of repeated tasks which arise during the development of a project. For example, if your team is developing a project, Jenkins will continuously test your project builds and show you the errors in early stages of your development.

By using Jenkins, software companies can accelerate their software development process, as Jenkins can automate build and test at a rapid rate. Jenkins supports the complete development lifecycle of software from building, testing, documenting the software, deploying and other stages of a software development lifecycle.



The filename that Jenkins 2 expects your job definitions/pipelines to be stored as is Jenkinsfile. You can have many Jenkinsfiles, each differentiated from the others by the project and branch it is stored with.  The Jenkinsfile can also serve as a marker file, meaning that if Jenkins sees a Jenkinsfile as part of your project’s source code, it understands that this is a project/branch that Jenkins can run.

Pipelines can either be written in a “scripted” syntax style or a “declarative” syntax style.

What is Blue Ocean?

Blue Ocean rethinks the user experience of Jenkins. Designed from the ground up for Jenkins Pipeline, but still compatible with freestyle jobs, Blue Ocean reduces clutter and increases clarity for every member of the team. Blue Ocean’s main features include:

  • Sophisticated visualizations of continuous delivery (CD) Pipelines, allowing for fast and intuitive comprehension of your Pipeline’s status.
  • Pipeline editor – makes creation of Pipelines approachable by guiding the user through an intuitive and visual process to create a Pipeline.
  • Personalization to suit the role-based needs of each member of the team.
  • Pinpoint precision when intervention is needed and/or issues arise. Blue Ocean shows where in the pipeline attention is needed, facilitating exception handling and increasing productivity.
  • Native integration for branch and pull requests, enables maximum developer productivity when collaborating on code with others in GitHub and Bitbucket.

Jenkins Home Directory

The Jenkins home directory contains all the details of your Jenkins server configuration, details that you configure in the Manage Jenkins screen. These configuration details are stored in the form of a set of XML files. Much of the core configuration, for example, is stored in the config.xml file. Other tools-specific configuration is stored in other appropriately-named XML files: the details of your Maven installations, for example, are stored in a file called hudson.tasks.Maven.xml . You rarely need to modify these files by hand, though occasionally it can come in handy.

Some important files and directories in the JENKINS_HOME directory:

  • config.xml : Jenkins root configuration file
  • fingerprints : It stores fingerprint records, if any
  • plugins : It is a root directory for all Jenkins plugins
  • jobs : It is a root directory for all Jenkins jobs
  • logs : It stores all log files
  • secrets : It is a root directory for the secret + key for credential decryption
  • users : It stores all user-related details in Jenkins
  • war : It stores all details related to the JENKINS_WAR file
  • workspace : It stores all the and artifacts related to different build jobs, and it moves content to jobs directory when archiving elements.