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
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:
-
Navigate to
. -
Select Add plugin configuration to create a new configuration.
-
In the New Configuration window, specify a Name for the configuration.
-
Select the Project that the configuration belongs to.
-
Optionally, add a Description for the configuration.
-
Select the appropriate Plugin for the configuration.
-
Configure the plugin configuration parameters.
-
Select OK.
Depending on your plugin configuration and how you run procedures, the Differences in plugin UI behavior. field may behave differently in the CloudBees CD/RO UI. For more information, refer to |
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:
|
||
Folder/View/Team Location |
A path to the |
||
User Name |
Valid username for the Jenkins server. |
||
Password |
Either a password or a token.
|
||
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 Differences in plugin UI behavior. field may behave differently in the CloudBees CD/RO UI. For more information, refer to |
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
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:
|
||
Test report location |
Location of the test report. Applicable only for
quality reports. The default is |
||
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:
|
||
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
|
||
Metadata propertysheet path |
Property sheet to store run metadata. If omitted,
|
||
Results count on initial retrieval |
Count of old builds to retrieve
from the Jenkins server. If omitted, it is set to |
||
Base URL for drill-down |
Base URL for the Jenkins server. If empty, it is set to:
The Jenkins_URL should be configured for the Jenkins server, at:
|
||
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
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 |
Job Location |
Location of the job within the folder structure.
For example, to create |
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
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
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
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. |
GetBuildDuration
Retrieves the duration of the last job’s build.
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
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
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
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
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,
|
GetJobDefinition
Retrieves the Jenkins job definition, in XML format.
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. |
JobAction
Performs actions according to the user-provided parameters.
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: |
RunAndMonitorBuild
Launches a build and shows the output as it runs. If the procedure is aborted, the Jenkins build is stopped.
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 (
Examples:
Examples:
|
||||
Is Parameters content in JSON format? |
Select if you provided JSON content in the Parameters field.
|
||||
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:
|
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
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 (
Examples:
|
||
Is Parameters content in JSON format? |
Select if you provided JSON content in the Parameters field.
|
||
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:
|
||
Need to Create the Report? |
If selected, the Report step of this procedure runs. |
ServerStatusReport
Creates a report with the Jenkins server 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. |
ShowBuildProcess
Displays information about a build while it is running, in real-time.
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
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.
-
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.
-
Create a new project and name it Jenkins.
-
Create a new procedure in the project and name it Jenkins build.
-
In the Jenkins build procedure, create two parameters:
configuration_name
andjob_name
.Figure 1. Create parameters -
To start a build from CloudBees CD/RO, create a new step using the JobAction plugin procedure.
Figure 2. Configure the JobAction plugin procedure -
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.
Figure 3. Configure the ShowBuildProcess plugin procedure -
Create a simple command step and specify
sleep 10
, to ensure there is enough time for the next step.Figure 4. Configure the Command step -
To retrieve the build log, create a new step using the GetBuildLog plugin procedure.
Figure 5. Configure the GetBuildLog plugin procedure -
To retrieve the build status, create a new step using the GetBuildStatus plugin procedure.
Figure 6. Configure the GetBuildStatus plugin procedure -
To retrieve the build duration, create a new step using the GetBuildDuration plugin procedure.
Figure 7. Configure the GetBuildDuration plugin procedure -
To generate a report of the builds on the Jenkins server, add a new step using the ServerStatusReport plugin procedure.
Figure 8. Configure the ServerStatusReport plugin procedureYour procedure should appear like this:
Figure 9. Complete procedure -
Run the procedure. When prompted, enter the parameter values. In this example, the Jenkins job is named Sample build.
Figure 10. Specify parameter valuesOnce the procedure has successfully run, you can view the generated 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:
-
Create a Jenkins plugin configuration to configure the plugin to be able to connect to the Jenkins server.
-
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. -
In the CloudBees CD/RO UI, create a new pipeline.
-
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.
-
Select the three tasks and select the group icon. The tasks are now grouped and will run in parallel.
-
Run the pipeline.
-
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 |
Project/branchNamePart1/branchNamePart2 |
|
Specific branch with a |
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.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.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.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.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.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.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.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.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.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.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.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.
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: