Jenkins is a continuous integration (CI) server that supports a wide range of tools and technologies. Adopting a CI process ensures that all developers' working copies of code are regularly merged into a shared trunk. Once a change is committed to the repository, the product is automatically rebuilt and tested.
With Jenkins you can automate a number of day-to-day tasks such as checking out the sources from source control, building, code analysis, and different levels of testing and deployment.
By setting up Jenkins to run these tasks each time a developer has changed the source code, you can detect any defects much faster meaning that you maintain your applications' quality and reduce time to market.
Jenkins is highly configurable, and there are numerous plugins available that provide access to a range of tools including source control, shell and batch scripts. Jenkins works on multiple platforms, supports Java and integrates with other corporate systems.
Jenkins supports two methods of specifying commands - simple projects and pipelines.
Earlier versions of Jenkins only provided projects (previously known as jobs) for managing your tasks. Projects need to be created and configured manually in the UI and, if you need to create multiple projects, could require more maintenance work. Configuring projects is independent from your code.
More recent versions of Jenkins also support pipelines where all build, test, analysis and deployment tasks are stored in a single pipeline and saved as a Jenkinsfile. Micro Focus recommends using pipelines as they are suitable for organizing complex activities running on multiple machines. Storing a pipeline in a file format also means you can follow common CI best practices and save the pipeline in your source control code system with the rest of your code as another artefact.
For simplicity, the examples in this guide are created using projects and not pipelines. For details about the pipeline syntax, see the Jenkins user documentation.