CI and Jenkins integration reference

5 minute read

Technical requirements, plugin configurations, pipeline steps, and supported features for CloudBees CI and Jenkins® integration with CloudBees Unify. Use this reference when configuring integrations, troubleshooting connectivity issues, or implementing pipeline steps for artifact, test, and security scan publishing.

System requirements

CloudBees Unify integration with CloudBees CI and Jenkins requires specific pipeline types and source control configurations.

Supported pipeline types

Multibranch Pipeline

CloudBees CI or Jenkins Multibranch Pipeline projects with automatic branch detection. Required for integration. Other project types are not supported.

Organization Folder

CloudBees CI or Jenkins Organization Folder for managing multiple repositories. Required for multi-repository scenarios. Only the first detected repository is considered by CloudBees Unify.

Supported SCM systems

GitHub

GitHub branch source for Multibranch Pipeline or Organization Folder. Requires GitHub SCM integration in CloudBees Unify.

Bitbucket

Bitbucket branch source for Multibranch Pipeline or Organization Folder. Requires Bitbucket SCM integration in CloudBees Unify.

GitLab

GitLab branch source for Multibranch Pipeline or Organization Folder. Requires GitLab SCM integration in CloudBees Unify.

Other SCM providers are not supported at this time.

Controller requirements

Controller version

CloudBees CI 2.387.3 or later. Jenkins 2.387 LTS or later.

Build history

Only CI jobs and builds executed after integrating with CloudBees Unify are displayed. Historical builds are not synchronized.

Required plugins

The following plugins must be installed on each controller for CloudBees CI and Jenkins integration. For operations center deployments, additional plugins are required — refer to operations center plugin requirements.

Plugin name Minimum version Purpose

CloudBees Unify Integration :: Controllers plugin

Latest

Core integration between controller and CloudBees Unify. Enables data synchronization and authentication. [NOTE] ==== * This plugin is only available for CloudBees CI version 2.504.2.5 or later and Jenkins version 2.504.2 or later. * If you already have CloudBees Platform Integration Plugin :: Controllers installed and are upgrading from version 1.422 or earlier, refer to Upgrade from version 1.422 or earlier for important information about deprecated dependencies that must be removed manually. ====

JUnit plugin

Latest

Test result publishing to CloudBees Unify. Required for test insights and analytics.

Pipeline

Latest

Pipeline as Code support. Required for Multibranch Pipeline projects.

GitHub Branch Source plugin

Latest

GitHub repository integration. Required when using GitHub as SCM.

Bitbucket Branch Source plugin

Latest

Bitbucket repository integration. Required when using Bitbucket as SCM.

GitLab Branch Source plugin

Latest

GitLab repository integration. Required when using GitLab as SCM.

operations center plugin requirements

For operations center integration, install plugins in both locations:

Operations center plugins
Controller plugins
  • All plugins listed in the required plugins table above

  • Controllers must be connected to operations center for automatic discovery

Pipeline steps reference

Pipeline steps for publishing data from CloudBees CI and Jenkins builds to CloudBees Unify.

registerBuildArtifactMetadata

Registers build artifact metadata to CloudBees Unify for tracking and management.

Required parameters

name

String. The name of the artifact reported to CloudBees Unify.

url

String. The URL where the artifact version is located. Example: docker.io/myapp/myimg:1.0.0.

version

String. The version of the artifact for traceability purposes.

Optional parameters

digest

String. Hash or checksum that uniquely identifies the artifact version. Recommended for tracking versions across repositories.

label

String. Comma-separated list of artifact labels.

type

String. Type of artifact (Docker, Maven, etc.).

componentId

String. ID of the component associated with the artifact. Default: Component ID where the workflow is located.

commit

String. Commit used to build the artifact. Default: Commit hash from the CI build. Required only if different repository/branch.

commitUrl

String. URL of the commit used to build the artifact. Default: Commit URL from the CI build. Required only if different repository/branch.

repositoryUrl

String. URL of the repository. Default: Repository URL from the CI build. Required only if different repository/branch.

ref

String. Branch or tag ref used to build the artifact. Default: Ref from the CI build. Required only if different repository/branch.

Syntax example

registerBuildArtifactMetadata( name: "my-artifact", url: "https://hub.docker.com/repository/docker/example", version: "1.0.0", digest: "sha256:abcdef1234567890", label: "staging,prod", type: "Docker" )

registerDeployedArtifactMetadata

Registers deployed artifact metadata to CloudBees Unify for deployment tracking, DORA metrics, and environment inventory.

Required parameters

targetEnvironment

String. The artifact’s target environment. The environment must already be configured in CloudBees Unify.

Optional parameters

artifactId

String. The artifact’s ID, returned as the output value of registerBuildArtifactMetadata. For example: def artifactId = registerBuildArtifactMetadata(…​). Either this or artifactUrl must be provided.

artifactUrl

String. URL of the deployed artifact. Either this or artifactId must be provided.

labels

String. Comma-separated labels attached to the artifact. Example: latest.

allowNoMatchingComponent

Boolean. If set to false (the default), this step fails if the component is not registered in CloudBees Unify. If set to true, this step succeeds even if the component does not exist, logging the error instead.

Syntax example

registerDeployedArtifactMetadata( artifactId: "12345678-1234-1234-1234-123456789abc", targetEnvironment: "production", labels: "latest" )

registerSecurityScan

Publishes security scan results to CloudBees Unify for vulnerability tracking and analytics.

Parameters

artifacts

String. Required. Security scan files to include. Wildcards supported.

format

String. Optional. Supported values: sarif, json. Default: sarif.

scanner

String. Optional. Scanner that produced the results. Required if format is not sarif. Build marked unstable if not specified for non-SARIF format.

archive

String. Optional. Archive reports in Jenkins build. Default: true.

Syntax example

registerSecurityScan( artifacts: "output/*.sarif", format: "sarif", scanner: "Checkov", archive: true )

exportSonarQubeScan

Special step for SonarQube integration. Generates and downloads scanning results from SonarQube.

Parameters

component

String. Optional. Component ID for the scan results.

project

String. Required. SonarQube project key.

host

String. Required. SonarQube server URL.

credentialId

String. Required. Jenkins credential ID for SonarQube authentication.

Syntax example

exportSonarQubeScan( component: "", project: "my-project-key", host: "https://sonarqube.example.com", credentialId: "sonarqube-token" )

junit

Publishes JUnit test results to CloudBees Unify for test analytics and insights.

Parameters

testResults

String. Required. Path to test result XML files. Wildcards supported. Example: */testing/my-reports/.xml.

Syntax example

junit '**/testing/my-reports/*.xml'

HTTPS requirements

Secure communication requirements for CloudBees CI and Jenkins integration.

Required protocols

HTTPS

Required for all production, staging, and internet-accessible controller integrations. Provides encryption, integrity verification, and authentication.

HTTP

Acceptable only for:

  • Local testing environments isolated from external networks.

  • Development environments without production credentials.

  • Proof-of-concept demonstrations on localhost.

Security protections

Confidentiality

Encrypts all data in transit. Prevents eavesdropping on sensitive information.

Integrity

Protects against tampering during transmission. Ensures requests and responses are not modified.

Authentication

Verifies connection to legitimate controller. Prevents man-in-the-middle attacks.

HTTP transmits credentials and key material unencrypted, exposing them to interception. Always use HTTPS for production deployments.

Integration limits and constraints

Technical limitations for CloudBees CI and Jenkins integration with CloudBees Unify.

Pipeline constraints

Supported project types

Only Multibranch Pipeline and Organization Folder projects. Freestyle, Matrix, and other project types not supported.

SCM provider support

GitHub, Bitbucket, and GitLab only. Other SCM providers not currently supported.

Data synchronization

Build history

Only builds executed after integration are synchronized. Historical builds cannot be imported.

Multiple repositories

For Organization Folders with multiple repositories, only first detected repository considered. Each repository requires separate component in CloudBees Unify.

Initial sync timing

Initial synchronization may take several minutes. Depends on number of pipelines and active branches.

Resource limits

Artifact metadata

Maximum 1000 artifacts per build. Artifact URL length limited to 2048 characters.

Test results

Maximum 10000 test cases per build. Test result files must be in JUnit XML format.

Security scans

Maximum scan report size: 50MB. Supported formats: SARIF and JSON only.

View controller status

For operations center integrations, monitor individual controller status and synchronization. For steps to access the controller status view, refer to Verify and manage connections.

Controller discovery

Automatic discovery of all controllers managed by operations center. Controllers appear within 5 minutes of operations center connection.

Status indicators
  • Waiting for connection: The controller is preregistered via the operations center integration and is in the process of connecting to CloudBees Unify.

  • Connected: The controller is successfully connected with CloudBees Unify and can start sending data.

Last data received

Timestamp of when CloudBees Unify last received job data from the controller. This timestamp updates when job data is received from Multibranch Pipeline jobs.

If the controller has no Multibranch Pipeline jobs configured, this field shows No data sent even when connected.

For troubleshooting guidance, refer to Troubleshoot integration problems.