Jenkins Job Builder
Site: http://docs.openstack.org/infra/jenkins-job-builder/
JJB is actually not a plugin, but a Python application that enables managing and creating jobs in Jenkins automatically by defining the configuration as YAML or JSON files.
It supports defining job templates, projects. Example configuration:
- job: name: job-name project-type: freestyle defaults: global description: 'Do not edit this job through the web!' disabled: false display-name: 'Fancy job name' concurrent: true workspace: /srv/build-area/job-name quiet-period: 5 block-downstream: false block-upstream: false retry-count: 3 node: NodeLabel1 || NodeLabel2 logrotate: daysToKeep: 3 numToKeep: 20 artifactDaysToKeep: -1 artifactNumToKeep: -1
Git Plugin
Exports the source code for the job from a Git repository.
GitLab Plugin
Integration with GitLab. Allows triggering of builds on push or merge requests in GitLab.
JIRA Trigger Plugin
- Triggers a build when a comment is added to JIRA
- Triggers a build when an issue is updated in JIRA
- Reply back to JIRA for scheduled builds
- Sets JIRA information as environment variables to the triggered build
JobFanIn Plugin
Starts a job only after all the listed jobs have been completed. Useful when creating a pipeline.
Join Plugin
Allows a job to run only after the listed jobs have been completed.
Parameterized Remote Trigger Plugin
Triggers jobs on a remote Jenkins server
Pipeline Plugin
A collection of plugins that allows building build pipelines (for example for continuous delivery or deployments). The pipeline is defined as a Groovy script in a job of type of Pipeline.
- Supports manual inputs or confirmation steps.
stage 'build' node { git 'https://github.com/cloudbees/todo-api.git' withEnv(["PATH+MAVEN=${tool 'm3'}/bin"]) { sh "mvn -B –Dmaven.test.failure.ignore=true clean package" } stash excludes: 'target/', includes: '**', name: 'source' } stage 'test' parallel 'integration': { node { unstash 'source' withEnv(["PATH+MAVEN=${tool 'm3'}/bin"]) { sh "mvn clean verify" } } }, 'quality': { node { def job = build job: 'some-downtream-job-name' } } } stage 'approve' timeout(time: 7, unit: 'DAYS') { input message: 'Do you want to deploy?', submitter: 'ops' } stage name:'deploy', concurrency: 1 node { def job = build job: 'some-deploy-job' } }
Rundeck Plugin
Triggers Rundeck jobs from Jenkins.
URLTrigger Plugin
Triggers a job based on a response from a defined URL.
Gradle Plugin
Gradle integration for Jenkins.
Promoted Build Plugin
Enables the ability to distinguish between good builds and broken ones. A promoted build is a build that has passed a specific criteria: for example, after all tests jobs for a build have passed successfully, or after the build has been promoted manually.
The name of the promotions are defined and the icon that will be displayed near the job in Jenkins
Shining Panda Plugin
Supports creating Python projects in Jenkins:
- Creates virtualenv environment
- Buildout builder
- Python builder
- Customer Python builder
ArtifactPromotion Plugin
Promote artefacts from one repository to another. For example from QA to production repository.
Build Name Setter Plugin
Sets the build name in Jenkins (instead of #1, #2 etc)
SemnticVersioning Plugin
Reads the version from POM, SBT and build.scala and passes the major, minor as an environment variable to the build jobs. It also displays the version of the build in the dashboard.
Notifications
Email-ext Plugin
Adds additional configuration for notification emails.
Slack Plugin
Post build notifications to a Slack channel.
Slave management
Libvirt Slaves Plugin
Automatically starts a VM managed by Libvirt (usually on KVM) before the job runs and sets it as a Jenkins slave, and then shutdown the VM when the job completed.
Reports
JUnit Plugin
Parse JUnit test reports and displays them in Jenkins.
Log Parser
Parses the job console and highlights warnings, errors.
Performance Plugin
Displays results from JMeter and JUnit.
Dashboards
Radiator View Plugin
Dashboard View
Code Checks
Violations
Provides reports from several code check utilities such as checkstyle, pylint etc.