Jenkins plugin

20 minute readExtensibilityDeveloper productivity

Jenkins is an open source continuous integration tool written in Java. It provides continuous integration (CI) services for software development, primarily in the Java programming language. It is a server-based system running in a servlet container such as Apache Tomcat. It supports SCM tools including Git, CVS, Subversion, Mercurial, Perforce and Clearcase, and can execute Apache Ant and Apache Maven-based projects, as well as arbitrary shell scripts and Windows batch commands. For more information, refer to the Jenkins site.

The Jenkins plugin provides an integration with a Jenkins CI server, allowing a CloudBees CD/RO user the ability to perform several operations on a Jenkins job.

Plugin Version 2.5.1.2024021274

Revised on February 19, 2024

Supported versions

This plugin was tested against Jenkins version 2.222.3

Prerequisites

This plugin is using an updated version of Perl, cb-perl shell (instead of old ec-perl). This means that it needs CloudBees CD/RO agent version 10.3+ to work.

Create Jenkins plugin configurations

Plugin configurations are sets of parameters that can be applied across some, or all, plugin procedures. They can reduce the repetition of common values, create predefined parameter sets, and securely store credentials. Each configuration is given a unique name that is entered in the designated parameter for the plugin procedures that use them. The following steps illustrate how to create a plugin configuration that can be used by one or more plugin procedures.

If your Jenkins instance has CSRF protection enabled, no additional setup is required. EC-Jenkins applies the CSRF token to request by itself, if necessary.

To create a plugin configuration:

  1. Navigate to DevOps Essentials  Plugin Management  Plugin configurations.

  2. Select Add plugin configuration to create a new configuration.

  3. In the New Configuration window, specify a Name for the configuration.

  4. Select the Project that the configuration belongs to.

  5. Optionally, add a Description for the configuration.

  6. Select the appropriate Plugin for the configuration.

  7. Configure the plugin configuration parameters.

  8. Select OK.

Depending on your plugin configuration and how you run procedures, the Input parameters  Configuration name field may behave differently in the CloudBees CD/RO UI. For more information, refer to Differences in plugin UI behavior.

Jenkins plugin configuration parameters

Parameter Description

Configuration name

Unique name for the configuration.

Server URL

Host name or a full address of the Jenkins server. For example: http://localhost:8080.

Folder/View/Team Location

A path to the team/folder/view of a Jenkins server for the CloudBees CI instance. For example, if the Server URL is set to https://yourinstance.cloudbees.com, and your team location is https://yourinstance.cloudbees.com/your-cool-team, you need to set /your-cool-team or your-cool-team as the value for this parameter. If you have a folder, and your folder location is https://yourinstance.cloudbees.com/job/your-cool-folder, you need to set job/your-cool-folder as the value for this parameter.

User Name

Valid username for the Jenkins server.

Password

Either a password or a token.

In addition to password-based authentication, this plugin supports token-based authentication provided by one of the following mechanisms:

You must pass the corresponding token in the Password parameter.

Test Connection?

Check if the connection should be established during the configuration creation to validate credentials.

HTTP Proxy

An HTTP proxy that should be used for connections.

Proxy Authorization

Username and password used to connect to the HTTP proxy.

Create Jenkins plugin procedures

Plugin procedures can be used in procedure steps, process steps, and pipeline tasks, allowing you to orchestrate third-party tools at the appropriate time in your component, application process, or pipeline.

Depending on your plugin configuration and how you run procedures, the Input parameters  Configuration name field may behave differently in the CloudBees CD/RO UI. For more information, refer to Differences in plugin UI behavior.

CollectReportingData

Collects reporting data from Jenkins and sends it to the CloudBees CD/RO reporting server. By default, the following fields are mapped to the applicable Build report or Quality report.

Input parameters

Table 1. CollectReportingData input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job name

Required. Name of the Jenkins job for the Build report.

Retrieve test results also

The test results for the builds are stored as a Quality report data type.

Copy Jenkins Builds Labels as Tags

If selected, the build labels are copied as tags on the build payload. The tags are in CloudBees CD/RO, if they do not already exist.

Preview mode

If selected, no reports are sent and no metadata is set; high verbosity is enabled instead. In this mode:

  • You can configure mappings, and the transformation is set before enabling automatic reporting.

  • Each object that is retrieved from Jenkins is displayed.

  • Transformation, mapping, and final payload are also displayed.

Test report location

Location of the test report. Applicable only for quality reports. The default is /testReport.

Test category

Test category. Applicable only for quality reports (for example, JUnit).

Field mapping

Allows you to place custom fields to payload, or modify payload values.

For example:

  • "MyApplication":build.releaseName maps the "MyApplication" value to the build report releaseName field.

  • For quality reports:

    • "MyApplication":quality.releaseName lastBuiltRevision.SHA1:build.myLastRevision maps the SHA1 field from the lastBuiltRevision object to myLastRevision.

    • lastBuiltRevision.branch[0].SHA1:quality.myLastRevision maps the SHA1 field from the first element of the branch array of lastBuiltRevision object to myLastRevision.

Transform script

Provide a Perl script for payload customization. This method is invoked by plugin with two parameters: the first parameter is the context object and the second parameter is the payload object. Since the Jenkins plugins sends two types of reports, the payload is a hash reference with build and payload sections. The method should be named transform, and should return the payload object. In this example, the myTimestamp field is added to build and quality payload objects:

sub transform { my ($context, $payload) = @_; $payload->{build}->{myTimestamp} = $context->one(); $payload->{quality}->{myTimestamp} = $context->two(); return $payload; } sub one { my ($context) = @_; return time(); }
The ElectricCommander module can be imported and used in the transform script. This example shows how to access the API, to read and write custom properties:
use ElectricCommander; my $ec = ElectricCommander->new(); sub transform { my ($context, $payload) = @_; # Set property to job $ec->setProperty('/myJob/build_document_id', $payload->{build}->{documentId}); # Get property from project and add to payload my $projectName = $ec->getProperty('/myJob/projectName')->findvalue('//value'); my $prop = $ec->getProperty("/projects/$projectName/my_custom_property")->findvalue('//value')->string_value; $payload->{build}->{my_custom_property} = $prop; return $payload; }

Metadata propertysheet path

Property sheet to store run metadata. If omitted, /mySchedule/EC-Jenkins-%JobName%-%Report Object Type% is used for schedule context. For all other contexts, the root is /myProject.

Results count on initial retrieval

Count of old builds to retrieve from the Jenkins server. If omitted, it is set to 10.

Base URL for drill-down

Base URL for the Jenkins server. If empty, it is set to:

%Jenkins_URL%/job/%Job name%

The Jenkins_URL should be configured for the Jenkins server, at:

http(s)://jenkins:[port]/configure

Debug

If selected, the debug level is set to "Debug". The summary logs are written with higher verbosity.

Build report

Parameter from Jenkins or the plugin Row in build report

CloudBees CD project

projectName

url

sourceUrl

pluginConfiguration

Plugin configuration name

buildNumber

number

startTime

timestamp from Jenkins converted to date

endTime

timestamp + duration converted to date

duration

duration

buildStatus

result

timestamp

timestamp from Jenkins converted to date

releaseName

Jenkins job name

releaseProjectName

Jenkins job name

Who launched the build

launchedBy

Quality report

Parameter from Jenkins or the plugin Row in quality report

Url of test report, constructed from procedure parameters and Jenkins url

sourceUrl

pluginConfiguration

Plugin configuration name

buildNumber

number

category

Test category from plugin parameters

releaseName

Jenkins job name

releaseProjectName

Jenkins job name

CreateJobFromXML

Creates a Jenkins job using an XML definition of the job. A job definition could be obtained using the GetJobDefinition procedure.

Input parameters

Table 2. CreateJobFromXML input parameters
Parameter Description

Configuration name

Required. Name of the configuration that contains the Jenkins authentication information.

Job Name

Required. Name of the job to be created, such as MyJob.

Job Location

Location of the job within the folder structure. For example, to create MyJob in the one/two/three directory, set this field to one/two/three.

XML Content

XML content of the Jenkins job.

Overwrite?

If selected, the existing job is overwritten. If not selected and the job exists, the procedure fails. By default, the job is not overwritten.

Create Folders Structure?

If selected, the folder structure is created. If not selected and the Job Location value does not exist, the procedure fails. Otherwise, the new folders are created. By default, directory structures are not created.

DownloadArtifacts

Downloads artifacts from Jenkins.

Input parameters

Table 3. DownloadArtifacts input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build number

Jenkins build number. If a build number is not specified, the most recent build is used.

Target directory

Jenkins target directory. If omitted, the workspace directory is used.

Artifacts to download

Provide a pattern for artifacts to download.

GetArtifactList

Retrieves a list of artifacts that were archived during the Jenkins build. This procedure does not return an artifact if it was built, but not archived. To archive an artifact, configure your project to use Archive Artifacts post-build action in Jenkins.

Input parameters

Table 4. GetArtifactList input parameters
Parameter Description

Configuration name

Required. Name of the configuration that contains Jenkins authentication information.

Job Name

Required. Name of the Jenkins job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Result Property

Property name used to store the artifact list.

Result Format

Format to store results, either in JSON or a property sheet.

GetBuildDetails

Retrieves all information for the Jenkins build.

Input parameters

Table 5. GetBuildDetails input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Need to Create the Report?

If selected, the Report step of this procedure runs.

Result (output property path)

Property name used to store the result of the HTTP response.

Output parameters

Output Parameter Description

jenkinsbuildurl

URL to the HTML report with the Jenkins build information.

jenkinsjoburl

URL to the Jenkins job.

jenkinsbuildnumber

Jenkins job build number.

jenkinsapiresponse

A response from Jenkins APIs in JSON format.

GetBuildDuration

Retrieves the duration of the last job’s build.

Input parameters

Table 6. GetBuildDuration input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Time Unit

Time unit of the output.

Result (output property path)

Property name used to store the result of the HTTP response.

GetBuildLog

Retrieves the last full log of a job’s build.

Input parameters

Table 7. GetBuildLog input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Result (output property path)

Property name used to store the result of the HTTP response.

GetBuildParameters

Retrieves the parameters of a Jenkins build.

Input parameters

Table 8. GetBuildParameters input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Result (output property path)

Property name used to store the result of the HTTP response.

GetBuildStatus

Retrieve’s the status of a Jenkins build. If the build was aborted or fails, this procedure sets the jobStep outcome property as error.

Input parameters

Table 9. Get Build Status input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Result (output property path)

Property name used to store the result of the HTTP response.

GetChangeLog

Retrieves the changelog from a Jenkins build. If there are changesets with different SCM types, additional properties with commits for every SCM are saved.

Input parameters

Table 10. GetChangeLog input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Result (output property path)

PropertySheet name used to store the changelog. If it does not exist, it is created. If left empty, /myJobStep/changelog is used.

GetJobDefinition

Retrieves the Jenkins job definition, in XML format.

Input parameters

Table 11. GetJobDefinition input parameters
Parameter Description

Configuration name

Name of the configuration that contains the Jenkins authentication information.

Job Name

Name of the Jenkins job containing the XML definition.

Result (output property path

Property name used to store the result of the HTTP response.

Output parameters

Table 12. GetJobDefinition output parameters
Output Parameter Description

job_xml

Output parameter to store Jenkins job XML definition.

JobAction

Performs actions according to the user-provided parameters.

Input parameters

Table 13. JobAction input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Action

Desired action to perform.

Job Name

Required. Name of the job.

Build Number

Jenkins build number that is only visible when Stop is selected for the Action parameter.

New Job’s Name

Provide a new name for the job that is only visible when Rename is selected for the Action parameter.

Parameters

List of parameters in the form of: param1=value1,param2=value2.

RunAndMonitorBuild

Launches a build and shows the output as it runs. If the procedure is aborted, the Jenkins build is stopped.

Input parameters

Table 14. RunAndMonitorBuild input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Parameters

Parameters in either a comma-separated list of key-value pairs (k1=v1,k2=v2) or JSON. If complex entries are required, JSON is the suggested format.

When using JSON content, you must also select the Is Parameters content in JSON format? option.

Examples:

{ "param1" : "qqq", "param2" : [ "test=test==" ], "param3" : [ "test=test==", "test=test==", "test= test==" ] }
An additional separator is a new line when using CSV format. The plugin does not support "invisible" separators, such as spaces or tabs.

Examples:

param1=test=test==,param2=xxx, => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx"}] param1=test=test== , param2=xxx, => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx"}] "param1=test=test==", "param2=xxx," => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx,"}] " param1 = test=test==" , "param2=xxx," => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx,"}] "param1=test""=test==","param2=xxx," => [{"name": "param1", "value": "test\"=test=="}, {"name": "param2", "value": "xxx,"}] "param1=test""=test,,\\\==", "param2 =xxx," => [{"name": "param1", "value": "test\"=test,,\\\=="}, {"name": "param2", "value": "xxx,"}]

Is Parameters content in JSON format?

Select if you provided JSON content in the Parameters field.

Only select this option if you used JSON in the Parameters field. Incorrect JSON formatting will cause the procedure to fail.

Need to Create the Report?

If selected, the Report step of this procedure runs.

Enable Parallel Mode?

If selected, more than one instance of this procedure is run in parallel (for example, as a group task in a pipeline). If Parallel Mode is enabled, you must ensure that the:

  • Jenkins job is parametrized.

  • The parametrized job has the efJobStepId parameter.

If Enable Parallel Mode is selected, and the Jenkins job is not parametrized with the efJobStepId parameter, the procedure fails. For more information, refer to Known issues.

Output parameters

Table 15. RunAndMonitorBuild output parameters
Output Parameter Description

jenkinsbuildurl

URL to HTML report with Jenkins build information.

jenkinsjoburl

URL to the Jenkins job.

jenkinsbuildnumber

Jenkins job build number.

RunAndWait

Launches a build and waits for it to finish. No postp matcher is included. If the procedure is aborted, the Jenkins build is stopped.

Input parameters

Table 16. RunAndWait input parameters
Parameter Description

Configuration name

Required. Name of the configuration that contains Jenkins authentication information.

Job Name

Required. Name of the job.

Parameters

Parameters in either a comma-separated list of key-value pairs (k1=v1,k2=v2) or JSON. If complex entries are required, JSON is the suggested format.

  • When using JSON content, you must also select the Is Parameters content in JSON format? option.

  • An additional separator is a new line when using CSV format. The Jenkins plugin does not support "invisible" separators, such as spaces or tabs.

Examples:

param1=test=test==,param2=xxx, => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx"}] param1=test=test== , param2=xxx, => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx"}] "param1=test=test==", "param2=xxx," => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx,"}] " param1 = test=test==" , "param2=xxx," => [{"name": "param1", "value": "test=test=="}, {"name": "param2", "value": "xxx,"}] "param1=test""=test==","param2=xxx," => [{"name": "param1", "value": "test\"=test=="}, {"name": "param2", "value": "xxx,"}] "param1=test""=test,,\\\==", "param2 =xxx," => [{"name": "param1", "value": "test\"=test,,\\\=="}, {"name": "param2", "value": "xxx,"}]

Is Parameters content in JSON format?

Select if you provided JSON content in the Parameters field.

Only select this option if you used JSON in the Parameters field. Incorrect JSON formatting will cause procedure to fail.

Enable Parallel Mode?

If selected, more than one instance of this procedure is run in parallel (for example, as a group task in a pipeline). If Parallel Mode is enabled, you must ensure that the:

  • Jenkins job is parametrized.

  • The parametrized job has the efJobStepId parameter.

If Enable Parallel Mode is selected, and the Jenkins job is not parametrized with the efJobStepId parameter, the procedure fails. For more information, refer to Known issues.

Need to Create the Report?

If selected, the Report step of this procedure runs.

Output parameters

Table 17. RunAndWait output parameters
Output Parameter Description

jenkinsbuildurl

URL to HTML report with Jenkins build information.

jenkinsjoburl

URL to the Jenkins job.

jenkinsbuildnumber

Jenkins job build number.

ServerStatusReport

Creates a report with the Jenkins server status.

Input parameters

Table 18. ServerStatusReport input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Result (output property path)

Property name used to store the result of the HTTP response.

ShowBuildProcess

Displays information about a build while it is running, in real-time.

Input parameters

Table 19. ShowBuildProcess input parameters
Parameter Description

Configuration name

Required. The name of the configuration that contains the information required to connect to Jenkins.

Job Name

Required. Name of the job.

Build Number

Jenkins build number. If a build number is not specified, the most recent build is used.

Result (output property path)

Property name used to store the result of the HTTP response.

StopBuild

Stops running the Jenkins build.

Input parameters

Table 20. StopBuild input parameters
Parameter Description

Configuration name

Name of the configuration that contains Jenkins authentication information.

Job Name

Name of Jenkins job to stop.

Build Number

Number of the running Jenkins build to stop.

Wait For Result

If enabled, the procedure is waiting for the Jenkins build to stop. Otherwise, a stop request is issued. The default is to wait for Jenkins build to be stopped.

Jenkins plugin use cases

The following example illustrate how to use the Jenkins plugin to:

Run Jenkins build from end-to-end

This example demonstrates a complete run of the Jenkins job’s build execution from CloudBees CD/RO.

  1. Create a Jenkins plugin configuration to configure the plugin to be able to connect to the Jenkins server. For this example, specify Jenkins for the Configuration name parameter.

  2. Create a new project and name it Jenkins.

  3. Create a new procedure in the project and name it Jenkins build.

  4. In the Jenkins build procedure, create two parameters: configuration_name and job_name.

    Create parameters
    Figure 1. Create parameters
  5. To start a build from CloudBees CD/RO, create a new step using the JobAction plugin procedure.

    *JobAction* plugin procedure
    Figure 2. Configure the JobAction plugin procedure
  6. Once a Jenkins job’s build has been executed, you can monitor the build in real time. To achieve this, create a new step using the ShowBuildProcess plugin procedure.

    *ShowBuildProcess* plugin procedure
    Figure 3. Configure the ShowBuildProcess plugin procedure
  7. Create a simple command step and specify sleep 10, to ensure there is enough time for the next step.

    Command step
    Figure 4. Configure the Command step
  8. To retrieve the build log, create a new step using the GetBuildLog plugin procedure.

    *GetBuildLog* plugin procedure
    Figure 5. Configure the GetBuildLog plugin procedure
  9. To retrieve the build status, create a new step using the GetBuildStatus plugin procedure.

    *GetBuildStatus* plugin procedure
    Figure 6. Configure the GetBuildStatus plugin procedure
  10. To retrieve the build duration, create a new step using the GetBuildDuration plugin procedure.

    *GetBuildDuration* plugin procedure
    Figure 7. Configure the GetBuildDuration plugin procedure
  11. To generate a report of the builds on the Jenkins server, add a new step using the ServerStatusReport plugin procedure.

    *ServerStatusReport* plugin procedure
    Figure 8. Configure the ServerStatusReport plugin procedure

    Your procedure should appear like this:

    Complete procedure
    Figure 9. Complete procedure
  12. Run the procedure. When prompted, enter the parameter values. In this example, the Jenkins job is named Sample build.

    Specify parameter values
    Figure 10. Specify parameter values

    Once the procedure has successfully run, you can view the generated report:

    Status report
    Figure 11. Jenkins status report

Configure parallel builds in CloudBees CD/RO using parallel mode

This example demonstrates how to configure parallel builds in CloudBees CD/RO.

To configure parallel builds:

  1. Create a Jenkins plugin configuration to configure the plugin to be able to connect to the Jenkins server.

  2. In the Jenkins UI, create a job, and add a efJobStepId parameter (this is required for the RunAndMonitorBuild procedure):

    This parameter is set by the plugin; you do not need to configure it in your procedure parameters form.
  3. In the CloudBees CD/RO UI, create a new pipeline.

  4. In the CloudBees CD/RO UI, create three tasks in the pipeline stage using the RunAndMonitorBuild plugin procedure. For each pipeline task, ensure that the Enable Parallel Mode? parameter is selected.

  5. Select the three tasks and select the group icon. The tasks are now grouped and will run in parallel.

  6. Run the pipeline.

    run pipeline results
  7. Confirm in Jenkins that there are exactly three build runs:

Specify the Job Name parameter for Multibranch Pipelines jobs

When working with a complex job structure, the Job Name parameter has to be specified in a URI-compatible way, but the plugin handles the multibranch pipeline job names and transforms them automatically. Here are some examples of the job names in Jenkins and how they have to be specified in the Job Name parameter:

Job type Jenkins job case Job Name value

Regular job

RegularJob

RegularJob

JobWith/symbol

JobWith%2Fsymbol

JobNameWith space

JobNameWith%20space

Multibranch pipeline jobs

Specific branch of a project

Project/branch

Specific branch of a project

Project/job/branch

Specific branch with a / in a project

Project/branchNamePart1/branchNamePart2

Specific branch with a / in a project

Project/job/branchNamePart1%2FbranchNamePart2

Nested Jobs

JobLevel2 in JobLevel1

JobLevel1/job/JobLevel2

JobLevel3 in JobLevel2 in JobLevel1

JobLevel1/job/JobLevel2/job/JobLevel3

Jenkins plugin release notes

2.5.1

  • Improved SSL/TLS certificate validation to ensure that when the Ignore SSL issues parameter is selected that SSL/TLS validation is properly disabled.

2.5.0

  • Extended parsing parameters to DSV format.

2.4.3

  • Added the option to send one parameter multiple times with different values for the RunAndMonitorBuild and RunAndWait procedures. This improvement was added to support the Extended Choice Parameter Jenkins plugin.

2.4.2

  • Added the possibility to parse parameters in CSV format for the RunAndMonitorBuild and RunAndWait procedures.

2.4.1

  • Fixed an issue where the Monitor step for the RunAndMonitorBuild procedure was running for a very long time.

  • Improved Queue ID handling for the RunAndMonitorBuild and RunAndWait procedures.

2.4.0

  • Added support to the RunAndMonitorBuild and RunAndWait procedures Parameters field to escape commas (,) and equals (=) that are used with inputs.

  • Improved the RunAndMonitorBuild and RunAndWait procedures to support JSON build parameters by implementing a new Is Parameters content in JSON format? parameter.

2.3.1

  • RunAndMonitorBuild and RunAndWait procedures were improved to send parameters for parametrized builds within a request body to support parameter values of any length.

2.3.0

  • Added support for the GetJobDefinition and CreateJobFromXML procedures.

2.2.3

  • Removed the default resource for the Test Connection parameter.

2.2.2

  • Starting with EC-Jenkins version 2.2.2, the Automation Platform UI does not allow you to create new plugin configurations. If you select the Create Configuration link in the Platform UI, it now redirects you to the Configure Plugin page in the CloudBees CD/RO UI.

  • Test Connection feature of plugin configurations has been fixed for SSL Bump proxy configurations.

2.2.1

  • Added a new matcher for Jenkins pipeline finished failure.

2.2.0

  • A new Check Connection Resource field has been added to the plugin configuration. This field allows specifying a particular resource to execute Check Connection logic.

2.1.0

  • A retry mechanism has been added to the RunAndWait and RunAndMonitorBuild procedures to mitigate possible network-related environmental issues.

  • Fixed an issue where some images may have been missing in the report generated by the ServerStatusReport procedure.

  • All API calls in the plugin now use a tree parameter to follow best practices: Block all API calls.

2.0.2

  • Fixed an issue where the RunAndWait procedure did not abort the Jenkins build after a pipeline was aborted.

2.0.1

  • Added session validation.

2.0.0

  • Upgraded from perl-5.8 to perl-5.32. No backward compatibility with CloudBees CD/RO prior to v10.3. Starting from this release, a new agent is required to run this plugin’s procedures.

  • Removed the Auth Type parameter.

1.21.1

  • Fixed support for the new configurations created with the UI.

1.21.0

  • The support of a new configurations has been added.

1.20.0

  • The following procedures: Get Build Details, Run And Wait, Run and Monitor Build were improved, and report generation can now be disabled in the procedures by selecting the Need to Create the Report? parameter.

1.19.2

  • Fixed a warning in the Get Build Details procedure.

  • Fixed a warning in the Report step of the Run and Monitor Build and Run And Wait procedures.

  • The documentation has been updated to include examples of Jenkins Multibranch Pipeline job names.

1.19.1

  • Fixed a problem with the Get Build Details procedure failing during the Report step.

  • Updated the plugin documentation.

1.19.0

  • Added support for external credential management.

  • Fixed a bug when checking the connection during configuration creation when the Folder/View/Team Location field was set to Folder and returned a 403 error.

1.18.3

  • Fixed a bug when the URL was not properly escaped when running the CollectReportingData procedure.

1.18.2

  • The documentation has been migrated to the main documentation site.

1.18.1

  • Fixed a bug where the Check connection parameter was returning an incorrect result.

1.18.0

  • The Depend On Jenkins Build Result? parameter has been added to RunAndWait procedure.

  • The Auth Type parameter has been added to the Jenkins plugin configuration. The plugin now supports basic and bearer token authentication.

  • The Debug Level parameter has been added to the Jenkins plugin configuration.

  • The CollectReportingData procedure has been improved to provide better support for Jenkins Multibranch Pipelines.

  • Data source setup for Jenkins has been improved to provide better support for Jenkins Multibranch Pipelines.

1.17.3

  • Resolved an issue where the Report step was failing due to duplicate locations.

1.17.2

  • Fixed a bug in the CollectReportingData procedure when it was not possible to retrieve build commit data if the target Jenkins job was a template job.

  • Deprecated usage of the Depth parameter in API calls has been removed.

  • Renamed to CloudBees CD/RO.

1.17.1

  • The Job Name parameter is now required in the parameter form for the JobAction procedure.

1.17.0

  • Integration with CloudBees CI has been improved. An improved build report is now provided for the GetBuildDetails, RunAndMonitorBuild, and GetAndWait procedures.

  • Added a new Folder/View/Team Location parameter to the plugin configuration.

  • The UI for the JobAction procedure has been improved for a better user experience in CloudBees CD.

  • Minor bug fixes and improvements.

1.16.0

  • Support for a new format of the build changeset has been added to the GetChangeLog and CollectReportingData procedures.

1.15.2

  • Fixed minor UI issues with the EditConfiguration form.

1.15.1

  • When the Release Command Center DataSource is removed, the CollectReportingData schedule is now correctly deleted as well.

  • Jobs for successful runs of CreateConfiguration and EditConfiguration are now preserved.

1.15.0

  • The Jenkins plugin can now check connections with new data when editing the plugin configuration.

  • Enhanced Multibranch Pipeline project job name support for all procedures.

  • New output parameters were added to the RunAndWait and RunAndMonitor procedures.

  • A link to the Jenkins build is now available in the pipeline summary for the RunAndWait and RunAndMonitor procedures.

  • Procedure summaries are now shown in a pipeline run.

1.14.1

  • Changed author to "CloudBees".

1.14.0

  • Added notes about Jenkins API tokens and Jenkins OAuth.

1.13.2

  • Configurations can be created by users with an @ sign in a name.

  • A new Enable Parallel Mode? parameter has been added to the RunAndMonitorBuild and RunAndWait procedures, to monitor concurrent parametrized Jenkins jobs.

1.13.1

  • Fixed an issue with lost output parameters for CloudBees CD/RO v9.0; upon upgrade or clean installation of v9.0, output parameters were not created for the plugin’s procedures.

  • Fixed an issue when mappings were not properly updated after DOIS Datasource modification.

1.13.0

  • Added SVN repository-based build support for the GetChangeLog procedure.

1.12.0

  • Added support for the Release Command Center 9.0.

1.11.0

  • Added tags support to the CollectReportingData procedure. Tags from Jenkins builds can be saved as tags in CloudBees CD/RO.

  • Added support for SVN repositories in Jenkins.

  • Datetime fields are now in ISO 8601 format in UTC timezone.

  • Added an SCM branch field, that can be used for SVN repositories. For Git, the branch is detected automatically.

  • Updated the default field mapping.

  • Fixed a problem where procedures incorrectly failed if SCM data was not present.

  • Fixed a problem where test reports are sometimes not present.

  • Removed the deprecated ImportArtifacts procedure.

  • Removed the deprecated Port field from the plugin configuration.

1.10.0

  • Added plugin support for CloudBees CD/RO v8.4 features. Changes include adding an icon for Dashboards and the ability to create configurations inline.

  • The CollectReportingData procedure has been improved to send reports for the ElectricFlow DevOps Foresight Center.

  • Added support for HTTP proxies to specify proxy information (host, port, and credentials at the configuration level) and all procedures use the proxy as second credentials for authentication.

1.9.2

  • Added plugin support for CloudBees CD/RO v8.3 features:

    • Rendering of procedure parameters entirely based on configured form XMLs and the ability to manage plugin configurations inline as part of a process step or pipeline stage task.

    • Setting output parameter jenkinsbuildurl as part of plugin procedures.

1.9.1

  • Fixed an issue where the required parameters count were different in pipeline contexts for the GetBuildDetails, GetBuildParameters, and GetArtifactList procedures.

1.9.0

  • Added support for the GetArtifactList and StopBuild procedures.

  • The ImportArtifacts procedure has been deprecated.

  • Fixed an issue when the GetBuildDuration procedure returning an incorrect value, rather than an error, when the Jenkins job does not exist.

  • Various bugfixes and improvements.

1.8.4

  • Minor bugfixes and improvements.

  • Added drill-down support for the Release Command Center dashboard.

1.8.3

  • Added support for the GetBuildParameters and GetBuildDetails procedures.

  • The Test Connection parameter has been added to configuration form.

1.8.2

  • Added support for the CollectReportingData, GetBuildDetails and DownloadArtifact procedures.

  • The Port parameter in the plugin configuration has been deprecated and will be removed in the next release. The Port should be specified in the Server URL parameter instead.

  • Fixed a bug where it was impossible to use the ExecuteJobAction procedure in pipeline and application contexts.

  • Fixed a bug where it was impossible to run Jenkins Pipelines using the ExecuteJobAction procedure.

1.7.3

  • Fixed an issue with configurations being cached for Internet Explorer®.

1.7.2

  • Renamed "ElectricCommander" to "ElectricFlow".

1.7.1

  • Fixed formatting issues in the documentation.

  • Fixed a bug where credentials were not being attached for all steps in the RunAndWait procedure.

  • Fixed a bug with HTTPS connections.

1.6.1

  • The GetStatus procedure now correctly fails when the corresponding Jenkins build fails.

1.5.0

  • Added support for the RunAndMonitorBuild procedure.

1.3.0

  • Added support for the ImportArtifacts procedure.

1.2.0

  • Added support for additional postp matchers.

1.1.0

  • Builds with arguments are now supported.

1.0.0

  • Added support for the following procedures:

    • GetBuildStatus

    • GetBuildLog

    • GetBuildDuration

    • ShowBuildProcess

    • JobAction

    • ServerStatusReport

Known issues

Jenkins does not provide a way to retrieve the build number of a remotely invoked build synchronously. Therefore, the logic used to decipher the build number after its invocation may not work accurately in situations where there are concurrent invocations of the same build. In addition, monitoring a build from CloudBees CD/RO in such situations may not be accurate.

The following issues with Jenkins are provided as a reference to highlight the challenges with different approaches for querying the build number: