Jenkins Continuous Deployment PlugIn
Execute Continuous Deployments from a Jenkins Workflow
Continuous Delivery relies on a Jenkins Build Job to orchestrate the build, test and deploy process. While it may be simple to have Jenkins call a one-off script for executing your development level build and test steps, those same process may not support your QA and production environments. The life cycle stages have mixed configurations. Using Jenkins with DeployHub improves the software deployment step of your continuous delivery process allowing testing and production teams to more easily adopt the developer defined process. Practice makes perfect and using DeployHub at development creates a repeatable process that can be adopted at testing and production without the burdens of traditional approaches.
The DeployHub Jenkins Continuous Deployment Plugin is called by Jenkins as a step in a job to perform the software deployment, without the need for Jenkins 'slaves' at multiple end-points or one-off deploy scripts. DeployHub then tracks a Build to a component and an end target (physical, virtual, cloud, container.) This enables you to utilize Jenkins to orchestrate your Continuous Integration process, while DeployHub does the heavy lifting of packaging the application stack and deploying it across your testing and production environments. The DeployHub Jenkins continuous deployment Plug-in includes a "Build Engine" object which can be connected to a Jenkins server. Each "Build Engine" can have one or more "Build Jobs" which relate to a particular Jenkins Project on that Jenkins Server. These "Build Jobs" can be linked to one or more components in DeployHub.
How the Jenkins Plugin Works
The linking of Components to a Jenkins Build Jobs allows DeployHub to track which Builds have been performed against which component. The Jenkins plug-in can be set to simply "notify" DeployHub that a Build has been performed. Since DeployHub knows which Jenkins Project is linked to which Build Job and which Component is linked to which Build Job, it can track Builds for each Component with an associated Jenkins Project.
Should a deployment be performed, DeployHub takes the Jenkins Build number into account when determining if a component should be deployed. Even if the Component Version has not changed, a new Build will result in a re-deployment. Jenkins Build Logs can be viewed directly from inside the DeployHub dashboard, minimizing the amount of browser activity required to view Build details. For example, a user can see a Build Artifact on a Target Server and open the details of the generating Build directly from the Server Details page. This information is then tracked in a Continuous Feedback Loop providing a clear map of all artifacts associated to a deployment.
Get the Jenkins Plugin
- DeployHub Jenkins Plugin
- DeployHub Jenkins Wiki Page on jenkins-ci.org
- DeployHub Jenkins Source Code
Configuration of the DeployHub Jenkins Plugin
- Username and Password- Determines security access to the various objects within DeployHub, including the Applications and Components that are available from the Jenkins Plug-In.
- Target Environment - A DeployHub Environment contains all of the Servers that will be deployed to.
- Application - A DeployHub Application contains all of the Components that make up a deployment. It is deployed against an Environment.
- Wait for Deployment to Complete - This tells Jenkins to wait until DeployHub is finished with the deployment before moving on to the next step in the Job. If this option is chosen, the remaining steps in the Job will only run if the deployment was successful. If left unchecked, Jenkins will continue to the next step in the Job as soon as DeployHub begins the deployment, and ignore the success or failure of the deployment.
- Use Advanced Version Selection - If this is checked, other options will appear that will allow you to take advantage of the capabilities that are available with Applications within DeployHub. These include:
- Find Latest Version - If Latest Version is approved, create a new version
- Use Component Selection
- Set Component Attributes
- Set Application Attributes