A DeployHub Build Engine maps to your continuous integration engines such as Jenkins.

Build Engines can be created by selecting the Data Center Menu item, clicking on the Build Engine tab, and right clicking on the Domain in the tree structure.

Jenkins Build Engine

A Jenkins Build Job communicates with DeployHub, passing log and results. Any time a DeployHub deployment is performed from Jenkins, the Application Version and Environment are required, by name, i.e. Application;1, Environment. If the names are not unique, the domain name must be included, i.e. DomainName.Application;1.

Build Jobs and Components

A Jenkins Build Job Run creates a Build Job Number stored in a DeployHub Component. A field named ‘Last Build Number’ is updated every time a Build Job is executed. The DeployHub Jenkins plug-in has a “notify only” mode for when a build has been done. Clicking on “Endpoints and Builds” will show all of the builds that have been done for that Component. Clicking on a Build Number will open a pop-up with the build log that has been pulled from Jenkins.

Build Job Run

An execution of Jenkins is called a Build Job Run, and DeployHub can be called at any step during the execution. It can build files, call DeployHub to perform a deployment, build more files, call DeployHub again, etc. This can be done in any order, in separate runs, or all together.


Jenkins build logs can be viewed directly from inside the DeployHub URL, minimizing the amount of browser activity required. For example, a user can see a build artifact on a target Endpoint and open the details of the generating build directly from the Endpoint details page.


If the ‘Always Deploy’ flag is set to Yes on a Component, it makes no difference if the version of the Component is different or the same as the one on the Endpoint; the Component is deployed to the Endpoint. If the ‘Always Deploy’ flag is set to No, the version on the Endpoint and the version of the Component must be different for the Component to be deployed. However, even if the version on the Endpoint and the version of the Component are the same, if the Last Build Number in the Component is different than the last build number in Jenkins, the Component will be deployed.


Creating and Deleting Build Engines

A Build Engine is created by selecting the Data Center Menu item, clicking on the Build Engines tab, and right clicking on the Domain in the tree structure. This action brings the “New Build Engine in this Domain” option. By selecting this option, the New Build Engine dialog box will automatically be displayed. Once created, the Build Engine details can be edited by selecting the General tab and clicking on the pencil icon on the far right.


To delete a Build Engine, right click on the Build Engine in the tree view to see the ‘Delete this Build Engine’ option. Once deleted, this action cannot be undone. A Build Engine can be copied by right clicking on the Build Engine, selecting the ‘Copy End Point’, and then paste it into another Domain with a right click.


A DeployHub Build Engine has a single property, which is the URL of the physical or virtual server where a continuous integration server resides. A Build Engine can also have a Credential, which contains the username and password to the physical or virtual server.


Editing a Build Engine

When you select the Endpoint from the tree structure, the details of the Endpoint are in the General tab. Edit the Endpoint details by clicking the pencil icon in the right corner of the window. In addition, Endpoints have associated Attributes, Components, and Access, which can be modified by selecting each of these tabs. In addition, you can view Endpoint History and usage Reports.


Properties Tab


Field

Description

Name

End Point URL: The URL where the Build Engine is located.

Value

End Point URL: Enter the I.P. (and directory if necessary) to where the Build Engine is located.

Encrypted

Checkbox that indicates that the value is to be encrypted in the DeployHub database.

Overridable

Checkbox that indicates the Property can be changed at runtime by specifying a replacement value in the Component Item.


Access Tab


Access

Description

View

This allows any User that belongs to any Group in this list to see the selected Build Engine in the tree structure on the right side.

Change

This allows any User that belongs to any Group in this list to make changes to the Build Engine.

Available Groups

This list contains all the Groups within the DeployHub installation. Dragging and dropping back and forth between this list and the other two lists allows or prevents access to viewing and changing the selected Build Engine.


General Tab

The General Tab displays the basic information that defines a Build Engine.  The Build Engine can be edited by clicking on the pencil icon from the right-hand corner of the window. The basic Build Engine information includes:


Field

Description

Name

The name of the Build Engine object.

Type

The type of Build Engine, i.e. Jenkins.

Owner

The owner of the Build Engine, it defaults to the User who created it. When editing this field, the Owner Type field is available which includes Owner and Group as choices. Selecting one of these causes the Owner field to display either Users or Groups to choose from.

Summary

A short text description of the Build Engine.

Created

The date and time the Build Engine was created.

Modified

The date and time the Build Engine was last modified.

Credential

The Username and Password pair needed to login to the Build Engine.


Build Jobs

Build jobs are used to build different kinds of executable files for placement within Components for eventual deployments.


Using Jenkins as an example, Jenkins performs a software build which includes compiling source code. Jenkins then calls DeployHub and places its Build Number into DeployHub to be referenced during a subsequent deployment. (This appears in the target Component’s General tab within the Last Build Number field). Jenkins then puts the files into the Repository that is referenced by the Component Item(s) within the Component. As a separate operation, Jenkins calls DeployHub to perform the deployment by referencing the Application that contains the Component. For DeployHub Pro users, Jenkins can also call a Release that contains multiple Applications.

Builds Tab

The General Tab displays the basic information that defines a Build Engine. The Build Engine can be edited by clicking on the pencil icon from the right-hand corner of the window.

The basic Build Engine information includes:


Field

Description

Build Number

The Build Number supplied by Jenkins. Clicking on this brings up a window with 3 fields:

Build Log: The output from the Jenkins build.

Deployed Servers: This includes a list of deployed Components, the Endpoints that they were deployed to, the DeployHub deployment ID, and the date and time of the deployment.

General: This includes the Jenkins Build Number, the date and time of the deployment, the duration of the build in seconds, the name of the Build Engine, and the name of the Build Job.

Date/Time

The Date and time the build was completed.

Components

A list of Components that were affected by the build.


General Tab

The General Tab displays the basic information about the Build Job. The Build Job can be edited by clicking on the pencil icon from the right-hand corner of the window. The basic Build Job information includes:


Field

Description

Name

The name of the Build Job.

Summary

A brief description of the Build Job and its use.

Project Name

The Jenkins Project Name.

Created

The date and time the Build Job was created.

Modified

The date and time the Build Job was last modified.