Jenkins for Continuous Integration
Continuous integration (CI) is a software development practice where team members integrate their work frequently (usually at a predefined time or event) and the resulting work is automatically tested and built. Continuous Integration ideas have changed how companies treat Build Management, Release Management, Deployment Automation, and Test Orchestration. CI is great supplement to the Agile development process.
Jenkins is a free and open source continuous integration tool written in Java. This project was forked from Hudson. Its main tasks are to monitor a version control system, to start a build system (such as Apache Ant or Maven), to monitor the whole build process and to provide maintainers with reports and notifications of success and errors. At its core Jenkins is an extensible continuous integration server and runs in a servlet container like Apache Tomcat.
All you need to use Jenkins is an accessible source code repository with your code and a working build script. This tool can be started either through the command line or in a web application server. There is option to install it as system service on Linux. Jenkins is a highly configurable system due to friendly web GUI with on-the-fly error checks and inline help. Its flexibility allows to work with a variety of environments. It supports different Source Control Management tools like Git, Subversion, and CVS. By combining Jenkins with Build Automation tools like Ant or Gradle the possibilities grow immensely.
What can Jenkins do?
- Push to various repositories.
- Integrate with many different Version Control System (AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase, RTC).
- Deploy directly to production or test environments.
- Start builds by various means, including commit triggering in a version control system, scheduling via a cron-like mechanism, requesting a specific build URL.
- Distribute build/test loads to multiple computers.
- Generate test reports. JUnit and TestNG test reports can be summarized and displayed together with history information.
- Enable after-the-fact tagging for builds long after their completion.
- Notify stakeholders in real-time of build status via RSS, E-mail, or IM.
- Keep track of dependencies, jars and their versions for specific builds via file fingerprinting.
- Provide clean readable links for most of its pages that can be linked from anywhere.
- Be extended with a wide range of 3rd party plugins for more functionality and flexibility.
Among other benefits of Jenkins is immediate bug detection and change set support. It is widely-used and well documented due to its active user community. Monitoring executions of externally-run jobs becomes simpler, even those that are run on a remote machine. You will always be notified of any errors and issues.
Jenkins provides continuous integration services for software development and allows teams to focus on their work by automating the build, artifact management, and deployment processes. The automated, continuous build increases the productivity, since it is easier for developers to integrate changes to the project, and for users to get a fresh build. For more details visit jenkins-ci.org.