Jenkins Basics - Continuous Integration tool

What is Jenkins:-

Originally developed by Sun Microsystems as Hudson for building Java projects, Jenkins emerged after the Oracle acquisition. It evolved from the forked code base of Hudson and was enhanced by adding various plugins. Jenkins serves as a continuous integration tool, automating the build process and assisting developers in managing both build and deployment processes.

It facilitates test-driven development by enabling code testing during development phases.

what is continuous integration

In software development, developers typically compile code using Maven and run test cases to ensure its integrity. When failures occur, developers manually address the issues. However, in scenarios where multiple teams or developers are working on various modules of a single web application, integration testing becomes crucial to ensure seamless operation.

To streamline this process, automation is key. Each piece of code must undergo testing with every new code change. This ensures that integration issues are identified and addressed on a daily basis, thereby guaranteeing that all code is thoroughly tested.

Jenkins server serves as a continuous integration platform and supports test-driven development. Being open-source and plugin-based, Jenkins allows for easy extension by incorporating different plugins.

Primarily, Jenkins is integrated with two key components:

  • Version control systems such as SVN or GIT
  • Build tools like Apache Maven. Through automation and integration with these components, Jenkins automates the build and deployment process, enhancing efficiency and reliability in software development workflows.

Jenkins Continuous Integration Server is developed in Java and can be installed on Tomcat or Jetty application servers. Jenkins’s functionality can be extended by adding more plugins.

Jenkins Continuous Integration API features

  • Generates code Clover reports and module build statuses.
  • Integrates with different build systems such as Ant, Gradle, and Maven.
  • Integrates with various source code repositories like SVN, CVS, and Git.
  • Allows released/snapshot modules to be pushed to different repositories like Nexus.
  • Facilitates the deployment of Java projects to testing, staging, and production environments.
  • Notifies developers of build statuses, whether success or failure.

Advantages of Jenkins

Build failures are caught at the integration stage, preventing further issues. Automatic build report notifications are sent for each code commit change. Jenkins is integrated with the LDAP mail server to notify developers about build report failures or successes. Facilitates Test-Driven Development and continuous integration agile development practices. Automates Maven release projects with simple steps. Helps identify bugs at an early stage in the development environment rather than in production.

Jenkins plugins:

Plugins, developed in Java, can be added to Jenkins to enhance its functionality. These Java plugins are easily installable.