This plugin from Tikal Knowledge allows sending Job Status notifications in JSON and XML formats.
Job Notifications are defined in job's configuration, in their own separate section "Job Notifications":
Several notification endpoints can be defined. Each endpoint can be configured with:
- "Format" : notification payload format, JSON or XML.
- "Protocol": protocol to use for sending notification messages, HTTP, TCP or UDP.
- "Event": job events that trigger notifications: Job Started, Job Completed, Job Finalized or All Events (the default option). The difference between job being "completed" and "finalized" is as follows: when job is finalized all post-build activities, such as archiving artifacts, were executed as well. This is not the case with job being merely "completed" which usually involves only creation of job's artifacts without post-processing them. If you're unsure of which event to use, you can start with "Job Finalized".
- "URL": URL to send notifications to. It takes the form of "
http://host" for HTTP protocol, and "
host:port" for TCP and UDP protocols.
- "Timeout": Timeout in milliseconds for sending notification request, 30 seconds by default.
The payload submitted includes the following information:
- Job's name and URL.
- Build's number, full URL, phase, and status.
- SCM URL, branch and commit (only for Git repositories).
- Artifacts generated. They need to be archived by "Archive the artifacts" or published to S3 by "Publish artifacts to S3 Bucket" post-build actions. In addition, Jenkins needs to have its URL configured in "Manage Jenkins" => "Configure System" => "Jenkins Location" => "Jenkins URL".