Jenkins Basics - Continuous Integration tool
What is Jenkins:-
Sun has developed Hudson for building Java projects, after the Oracle acquisition, Hudson renames Jenkins (forked code base and enhanced by adding different plugins)
what is continuous integration:-
In software development, when we developed any code, developers compile the code using maven and run the test cases for the code, if failure happens, we will fix the code. For each code, we need to do it manually.
But, if multiple teams/developers are working on different modules of the same web application, we need to do an integration test by integrating all modules.
so we need an automated process in which each piece of code is tested for each new code change, the developer will fix the issues in case of integration issues daily basis so that all your code is tested daily.
Jenkins server provides continuous integration platform and test-driven development
Jenkins is open source which is plugin-based development, you can extend the Jenkins server by adding different plugins.
Jenkins is used to automate the build and deployment process.
Jenkins is mainly integrated with two components.
- Version Control systems like SVN, GIT
- Build tools like apache maven.
Jenkins Continous Integration server is developed in Java, and can be installed on tomcat or jetty application server. Jenkins can be extended by adding more plugins.
Jenkins Continuous integration API features:
1. Generate code clover reports and module build status 2. Integrated with different build systems like Ant, Gradle, and maven 3. Integrate with different source code repositories like svn, CVS, and Git 4. released/snapshot modules are pushed to different repositories like the nexus 5. Deploy Java projects to test, stage, and production environment 6. build status like success or failure is notified to developers
Advantages of Jenkins:
1. Build failures are cached at the integration stage. 2. Automatic build report notification for each code commit change 3. Jenkins is integrated with the LDAP mail server to notify developers about build report failures or success 4. achieve Test-Driven development and continuous integration agile development 5. maven release projects are automated with simple steps 6. Easily find out bugs at an early stage in a development environment than production.
plugins are developed in Java, and can be added to Jenkins to get more functionality. java plugins are easily installable