---
component: ROOT
version: "2026.3"
slug: ROOT/integrations/jenkins
canonical_url: "https://docs.develocity.ai/2026.3/integrations/ci/jenkins/"
title: "Jenkins"
description: "Integrate Develocity with Jenkins using the Gradle Jenkins plugin to display Build Scan links and instrument all CI jobs from a central location."
keywords:
  - "CI"
  - "continuous integration"
  - "Jenkins plugin"
  - "Build Scan"
status: current
---

<!-- llms-index: https://docs.develocity.ai/llms.txt -->

# Jenkins

<a id="preamble"></a>

> [!NOTE]
> This page covers the community **Gradle Jenkins plugin**, which links each build’s Build Scan from Jenkins. To cache Maven, Gradle, npm, pip, or SonarScanner dependencies through the Develocity Artifact Cache instead, see [Configuring Jenkins for Artifact Cache](https://docs.develocity.ai/artifact-cache/1.7/how-to/configure-jenkins/).

> [!NOTE]
> The Develocity plugin or extension is configured in your build. See the documentation for Gradle, Maven, sbt, npm, or Python. You have a Develocity server URL and access key. Jenkins administrator access to install plugins and manage credentials.

<a id="install-the-gradle-jenkins-plugin"></a>

## Install the Gradle Jenkins Plugin

Install the [Gradle Jenkins plugin](https://plugins.jenkins.io/gradle) from the Jenkins Plugin Manager.

The plugin prominently displays Build Scan links for any Gradle or Maven build. It also instruments all CI jobs and configures the Develocity Gradle plugin or Maven extension centrally, without modifying individual projects.

For the full configuration guide, see the [Gradle Jenkins plugin README](https://github.com/jenkinsci/gradle-plugin#develocity-integration).

<a id="store-the-access-key-as-a-credential"></a>

## Store the Access Key as a Credential

Store your Develocity access key in Jenkins as a **Secret text** credential under **Manage Jenkins** → **Credentials**.

The access key value uses the format `«server host name»=«access key»`:

```properties
develocity.example.com=7w5kbqqjea4vonghohvuyra5bnvszop4asbqee3m3sm6dbjdudtq
```

Reference the credential in your `Jenkinsfile` using the `withCredentials` step so the access key is available as the `DEVELOCITY_ACCESS_KEY` environment variable during the build:

```groovy
withCredentials([string(credentialsId: 'develocity-access-key', variable: 'DEVELOCITY_ACCESS_KEY')]) { (1)
    sh './gradlew build'
}
```

1. Replace develocity-access-key with the credential ID you chose when creating the credential in Jenkins.

<a id="authenticate-with-workload-identity"></a>

## Authenticate With Workload Identity

Instead of the stored Secret text credential from [Store the Access Key as a Credential](#store-the-access-key-as-a-credential), bind an OIDC token minted for each build and supply it as the same `DEVELOCITY_ACCESS_KEY` variable. Develocity accepts the OIDC token directly in place of an access key.

> [!WARNING]
> The Gradle Jenkins plugin does not support workload identity in the initial 2026.3 release. You can still use workload identity without it, as shown below.

> [!NOTE]
> Configure a Workload Identity rule in Develocity before using this flow, using the Jenkins provider example on that page for the issuer and audience. The audience Jenkins issues the token for must match the Audience configured on that rule.

The [OpenID Connect Provider plugin](https://plugins.jenkins.io/oidc-provider/) issues the token as an **OpenID Connect id token** credential. Bind that credential in place of the Secret text credential, in host-qualified `«server host name»=«token»` form:

```groovy
withCredentials([string(credentialsId: 'develocity-oidc-token', variable: 'DV_OIDC_TOKEN')]) { (1)
    withEnv(["DEVELOCITY_ACCESS_KEY=develocity.example.com=${DV_OIDC_TOKEN}"]) {
        sh './gradlew build'
    }
}
```

1. Replace develocity-oidc-token with the ID of the OpenID Connect id token credential you created with the OpenID Connect Provider plugin.

The Gradle plugin rejects a bare token, so keep the host name prefix.

By default the token identifies only the job through its `sub` claim. To scope the Develocity rule on the branch or another build attribute, add a custom claim template in the OpenID Connect Provider plugin under **Manage Jenkins**  **Security**  **ID Token** that exposes a claim such as `branch`. See the [Jenkins provider example](https://docs.develocity.ai/2026.3/administration/access-control/workload-identity/#provider-examples) for the matching claim requirements.

<a id="verify-the-integration"></a>

## Verify the Integration

After your first pipeline run, the Gradle Jenkins plugin displays a direct link to the Build Scan from the Jenkins build page. Open your Develocity server and navigate to Build Scan to confirm your build appears there. Install the [Common Custom User Data plugin](https://docs.develocity.ai/2026.3/using-develocity/common-custom-user-data/) to tag builds as CI and enrich each Build Scan with the Git branch, commit SHA, and a link back to the Jenkins build.