Jenkins

Contains actions to get artifacts and trigger builds in Jenkins

  • About
  • Details
  • Release Notes
  • Installation

Scale beyond simple build and deploy

Move Jenkins build artifacts through complex release pipelines with BuildMaster.

Jenkins is a top tier tool for Continuous Integration and BuildMaster is one of the strongest release and deployment solutions. But integrating the tools together, users can leverage each of the individual strengths for a more robust solution.

BuildMaster intgrates with Jenkins

Operations

By installing the Jenkins extension, you are given additional Built-in Jenkins operations. These Built-in operations include:

  • Download Jenkins Artifact - Downloads an artifact from a Jenkins server
  • Importing an artifact from Jenkins - Downloads an artifact from the specified Jenkins server and saves it to the artifact library
  • Queue a Jenkins Build - Queues a build in Jenkins, optionally waiting for its completion

Using the extension

The below steps will outline a basic scenario of creating a new Jenkins build from within BuildMaster, then pulling the build artifact created from Jenkins into BuildMaster, and promoting it through a simple pipeline.

The Jenkins instance we're using has been configured to create builds of a simple web application called Accounts; the source code is from a GitHub repository. We've set the Project name to AccountsWeb since it's a web app.

Step 1: Install the BuildMaster Jenkins Extension, and Create a Credential

Click Administration > Click BuildMaster Extensions > Click Jenkins > Click Install this Extension

After the extension is installed, BuildMaster will automatically restart and Jenkins will now be under Up-to-Date Extensions.

Click Administration > Resource Credentials > Create Credential > Jenkins

Enter the Jenkins Project, the server URL, and a credential and save.

Step 2: Create an Application in BuildMaster

Click Applications > Click Create Application > Set Name to AccountsWeb > Click Create

When creating the application, the Integration, Testing, and Production environments will be added by default as the initial pipeline.

Step 3: Create an Import Plan

We first need to import an artifact from Jenkins. For that we'll create a Plan that will queue a build in Jenkins from BuildMaster and import the artifact from the queued build.

Create a new plan and call it Import Build.

Start with a General Block to describe what will be happening in this plan

Add Queue Jenkins Build to the plan and set the Job name. Also, under the Connection/Identity section add the credential we created earlier.

Add Import Jenkins Artifact next. Add the resource credential as well as the Job name, a name for the artifact that will be imported, and what build you want imported. We'll use lastSuccessfulBuild to ensure we don't import a broken build.

Visual Mode

Text Mode (OtterScript)

Step 4: Edit Application Pipeline and Set Import Plan

When we created the application, a simple pipeline was also created which we can now edit.

Click Pipelines > Click AccountsWeb

You'll see that our three stages are already in place, and they already have Deploy WebAccounts plan assigned to them. First, we need to import the Jenkins artifact. We'll create a new Stage for that.

Click Add Stage > Set Name to Import > Set Pipeline position to 0 > Click Save Stage

By setting the Pipeline position to 0, the stage is created as the first stage in the pipeline, since we need to import a build before we can move it through our pipeline.

Next we need to set the import stage with our import plan. Click add target on the import stage and set the plan to Import Build.

Step 5: Edit the Deployment Plan

As noted above, we already have a plan assigned to our pipeline stages called Deploy AccountsWeb; we'll now edit that plan.

Click Plans > Click Deploy AccountsWeb

BuildMaster has automatically created a simple deployment plan by default. The plan doesn't do much, but we can edit it so that it will deploy the artifact that we'll import through the pipeline.

Edit the General Block at the top with a short description of what the plan will do, and set a server for the plan to be run on. Note that you can also target environments and servers to execute operations on from the pipeline stage, but for this tutorial, we'll just set it here.

The other two actions in the plan can be deleted.

Next, drag a Deploy Artifact operation into the edited General Block. Set the Artifact name to Websites, and the Target directory to C:\Websites\$EnvironmentName\Accounts. Using $EnvironmentName will create a new folder for each environment that the application is deployed to, and demonstrates one way to generalize a deployment plan for use in multiple environments.

Step 6: Creating a Release and Deploying

After setting the build importer, we will create a Release that deploys this artifact with an imported release package. The release number can be anything, but defaults to 0.0.0.

Click Releases > Click Create Release

Once the release is created, you can now create a package, which will use the import plan we defined.

Click Create Package > Click Create Package

BuildMaster will now run the Import Plan we created to queue a Jenkins Build and then Import the artifact to BuildMaster.

We can see that there has been an artifact created called Websites, and the Variable $JenkinsBuildNumber has incremented by 1 from the first screen-shot.

You can now run the artifact through the rest of the pipeline simply by clicking [Deploy] in each successive stage. Of course, you can also configure gates, listeners, permissions to ensure that a proper process is followed.

You can further verify that the deployment was successful by checking the drive used when setting up the deployment plan. There will be three folders under /Websites -one for Integration, Testing, and Production, all with the deployed files.

5.4.4

10/16/2017
  • 16 - FIX: Legacy "Get Artifact" action editor does not load

Download (requires BuildMaster 5.4.0 or newer)

5.4.3

2/17/2017

No notes for this release

Download (requires BuildMaster 5.4.0 or newer)

5.4.2

11/11/2016

No notes for this release

Download (requires BuildMaster 5.4.0 or newer)

5.4.1

11/11/2016

No notes for this release

Download (requires BuildMaster 5.4.0 or newer)

5.4.0

9/30/2016

No notes for this release

Download (requires BuildMaster 5.4.0 or newer)

5.2.0

7/11/2016

No notes for this release

Download (requires BuildMaster 5.2.0 or newer)

5.1.0

6/17/2016

No notes for this release

Download (requires BuildMaster 5.1.0 or newer)

5.0.0

4/29/2016

No notes for this release

Download (requires BuildMaster 5.0.0 or newer)

4.8

1/8/2016
  • 11 - SDK 4.9 Compatibility

Download (requires BuildMaster 4.9.5 or newer)

4.7

11/30/2015
  • 10 - Added additional logging of all urls

Download (requires BuildMaster 4.4.1 or newer)

4.6

7/6/2015
  • 9 - The Jenkins Build Importer should resolve special build numbers when using an Automatic build

Download (requires BuildMaster 4.4.1 or newer)

4.5

3/18/2015
  • 8 - Additional parameters supplied in the Trigger Build action should not be URI-escaped

Download (requires BuildMaster 4.4.1 or newer)

4.4

1/13/2015
  • 7 - Improved artifact search logic

Download (requires BuildMaster 4.4.1 or newer)

4.3

8/8/2014
  • 6 - Added BuildImporter and Other 4.4 Bits

Download (requires BuildMaster 4.4.1 or newer)

4.2

11/25/2013
  • 5 - Triggering Jenkins builds with parameters does not work correctly

Download (requires BuildMaster 4.0.7 or newer)

4.1

11/21/2013
  • 4 - Add a simple wizard to create an application in BuildMaster that deploys a Jenkins artifact

Download (requires BuildMaster 4.0.7 or newer)

4.0

10/12/2013

No notes for this release

Download (requires BuildMaster 4.0.3 or newer)

3.1

6/7/2013
  • 3 - Jenkins extension version was listed as 0.0.0.0

Download (requires BuildMaster 3.5.0 or newer)

3.0

5/29/2013
  • 2 - Retrieve build artifact from Jenkins
  • 1 - Trigger build in Jenkins

Download (requires BuildMaster 3.5.0 or newer)

If your installation of BuildMaster can access inedo.com, simply navigate to Admin > Extensions, and install or update extensions from the gallery.

You can also manually install the extension.

  1. Copy the extension file (Jenkins.bmx) to the Extension Library path (by default, this is c:\BuildMaster\Extensions).
  2. Restart the BuildMaster Service (Admin > Service).
  3. Restart the BuildMaster Web Application (Admin > All Settings > Save).
  4. Verify that the new extension has been loaded (Admin > Extensions)