For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configure Jenkins for Deploy Change Investigator

Send build and deployment webhooks from your pipelines

Configure Jenkins pipelines to send build and deployment data to the Deploy Change Investigator using shell scripts.

Before you begin

  • Deploy Change Investigator setup: Create build and deploy webhook integrations in AI SRE. Go to Deploy Change Investigator to set up the integrations.

  • Jenkins pipeline access: Permission to edit the Jenkinsfile or add build steps.

  • Webhook URLs: Copy the build and deploy webhook URLs from your AI SRE integrations.

  • Git plugin: Ensure the Jenkins Git plugin is installed for commit SHA access.

WHY JENKINS NEEDS SCRIPTS

Jenkins does not have native webhook notification support like GitHub Actions or GitLab CI. Use shell scripts with curl to send webhook POST requests at the end of build and deploy stages.


Configure build webhooks

Add a shell script step to your Jenkins build pipeline that runs after the artifact is published.

Declarative pipeline

Add this step to your post section or as the last step in your build stage:

pipeline {
    agent any
    
    environment {
        BUILD_WEBHOOK_URL = credentials('aisre-build-webhook-url')
        ARTIFACT_REGISTRY = 'docker.example.com'
        SERVICE_NAME = 'myapp'
    }
    
    stages {
        stage('Build') {
            steps {
                // Your build steps here
                sh 'docker build -t ${ARTIFACT_REGISTRY}/${SERVICE_NAME}:${BUILD_NUMBER} .'
                sh 'docker push ${ARTIFACT_REGISTRY}/${SERVICE_NAME}:${BUILD_NUMBER}'
            }
        }
    }
    
    post {
        success {
            script {
                sh '''#!/bin/bash
                    json_payload="{\
                    \\"artifact\\": {\\"name\\": \\"${ARTIFACT_REGISTRY}/${SERVICE_NAME}\\", \\"version\\": \\"${BUILD_NUMBER}\\"},\
                    \\"source\\": {\
                    \\"commitSha\\": \\"${GIT_COMMIT}\\",\
                    \\"kind\\": \\"branch\\",\
                    \\"value\\": \\"${GIT_BRANCH}\\",\
                    \\"repository_url\\": \\"${GIT_URL}\\"},\
                    \\"service\\": {\\"name\\": \\"${SERVICE_NAME}\\", \\"version\\": \\"${BUILD_NUMBER}\\"},\
                    \\"buildId\\": \\"${BUILD_ID}\\"}"
                    
                    curl "${BUILD_WEBHOOK_URL}" \\
                      -s \\
                      -H "Content-Type: application/json" \\
                      -d "${json_payload}"
                '''
            }
        }
    }
}

Scripted pipeline

Environment variables reference

Jenkins provides these environment variables automatically:

  • GIT_COMMIT: Full SHA of the commit being built.

  • GIT_BRANCH: Branch name (for example, origin/main).

  • GIT_URL: Git repository URL.

  • BUILD_ID: Unique Jenkins build ID.

  • BUILD_NUMBER: Sequential build number.

Custom variables to set:

  • BUILD_WEBHOOK_URL: Store as a Jenkins credential (Secret text).

  • ARTIFACT_REGISTRY: Your Docker or artifact registry URL.

  • SERVICE_NAME: Service identifier.


Configure deploy webhooks

Add a shell script step to your Jenkins deployment pipeline that runs after the deployment completes.

Declarative pipeline

DEPLOY STATUS IS RECORDED AS SUCCESS

The stock Harness Deployment template records every deploy activity as success. Sending a FAILURE status is accepted but does not create a failed-deployment record. Keep the failure webhook if you want the deploy event captured, but do not rely on the status value to distinguish failed deploys.

Multi-service deployments

For deployments that update multiple services:


Store webhook URLs as credentials

Store webhook URLs securely in Jenkins:

  1. Navigate to Manage Jenkins, then select Credentials

  2. Select the appropriate domain (usually (global))

  3. Click Add Credentials

  4. Configure the following:

    • Kind: Secret text

    • Secret: Paste your build or deploy webhook URL

    • ID: aisre-build-webhook-url or aisre-deploy-webhook-url

    • Description: "AI SRE Build Webhook URL" or "AI SRE Deploy Webhook URL"

  5. Click OK

Reference credentials in Jenkinsfile:


Critical mapping requirements

The Deploy Change Investigator requires exact matches between build and deploy data:

Build webhook field
Deploy webhook field
Must match

service.name

services[].service

✅ Yes

artifact.version or service.version

services[].version

✅ Yes


Testing webhooks

Test build webhook

Trigger a build and confirm the webhook reaches AI SRE:

  1. Trigger a Jenkins build that includes the webhook script

  2. Check the Jenkins console output for curl command execution

  3. Navigate to AI SRE, then select Integrations

  4. Click the More icon on the BUILD integration

  5. Select Debug to view received webhook events

Test deploy webhook

Trigger a deployment and confirm the webhook reaches AI SRE:

  1. Trigger a deployment pipeline

  2. Verify the curl command runs in the console output

  3. Navigate to AI SRE, select Integrations, then select Debug on the DEPLOY integration

Verify the connection

After sending both build and deploy webhooks:

  1. Navigate to AI SRE, then select Change Management

  2. You should see deployment records linked to builds

  3. Click into a deployment to see the following:

    • Artifact versions

    • Commit SHAs

    • Linked PRs


Troubleshooting

Jenkins build webhook not received in AI SRE

Confirm the curl command runs in the Jenkins console log, verify the webhook URL credential is correct, ensure Jenkins agents allow outbound HTTPS, and check the JSON payload for syntax errors using the -v flag on curl.

Jenkins deploy webhook received but changes not showing in AI SRE

Ensure services[].service in the deploy webhook exactly matches service.name in the build webhook, and services[].version exactly matches artifact.version or service.version. Confirm both webhooks were sent by checking the Debug view for both integrations.

Getting the BUILD_USER variable in Jenkins for AI SRE deploy webhooks

Jenkins does not provide BUILD_USER by default. Install the Build User Vars Plugin to expose BUILD_USER, BUILD_USER_EMAIL, and BUILD_USER_ID, or use ${BUILD_CAUSE} or hardcode a service account name.


Example complete Jenkins pipeline

The following is a complete example with both build and deploy webhooks:


Next steps

Last updated

Was this helpful?