Skip to main content

Jenkins Plugin

Without this plugin, build status lives in Jenkins — developers context-switch to check whether a build passed, find the right job among many, and trace failures back to code. Enable the plugin, add jenkins.io/job-full-name with the job path in Jenkins, and a CI tab appears on the entity showing build history and status. Configure JENKINS_URL and credentials in the backend plugin config.

The Jenkins plugin displays Jenkins build status in catalog entity pages.

Status: Preloaded in the DevPortal image, disabled by default. Enable via dynamic-plugins.yaml or Marketplace.


Packages

PackageRole
backstage-community-plugin-jenkinsFrontend — entity CI tab card
backstage-community-plugin-jenkins-backend-dynamicBackend — Jenkins API proxy

Both must be enabled together.


What it does

  • Adds a CI tab entry showing Jenkins builds via EntityJenkinsContent
  • Displays build status, duration, and link to Jenkins
  • Only renders for entities with isJenkinsAvailable true

Enabling the plugin

plugins:
- package: ./dynamic-plugins/dist/backstage-community-plugin-jenkins-backend-dynamic
disabled: false
pluginConfig:
jenkins:
instances:
- name: default
baseUrl: ${JENKINS_URL}
username: ${JENKINS_USERNAME}
apiKey: ${JENKINS_TOKEN}

- package: ./dynamic-plugins/dist/backstage-community-plugin-jenkins
disabled: false
pluginConfig:
dynamicPlugins:
frontend:
backstage-community.plugin-jenkins:
mountPoints:
- mountPoint: entity.page.ci/cards
importName: EntityJenkinsContent
config:
layout:
gridColumn: "1 / -1"
if:
allOf:
- isJenkinsAvailable

App configuration

Jenkins connection details are supplied via the backend plugin's pluginConfig:

jenkins:
instances:
- name: default
baseUrl: ${JENKINS_URL} # e.g. https://jenkins.company.com
username: ${JENKINS_USERNAME}
apiKey: ${JENKINS_TOKEN} # Jenkins API token (not password)

Multiple Jenkins instances are supported — add additional entries to the instances array and reference them with jenkins.com/host annotation.


Required annotation

metadata:
annotations:
jenkins.io/job-full-name: my-folder/my-job