- Author: rinrinne a.k.a. rin_ne
- Repository: http://github.com/jenkinsci/rabbitmq-build-trigger-plugin
- Plugin Information: https://wiki.jenkins-ci.org/display/JENKINS/RabbitMQ+Build+Trigger+Plugin
This fork is a minor tweak for the post build action that publishes the full project name instead of only the last part.
rabbitmq-build-trigger is a Jenkins plugin to trigger build using application message for remote build in specific queue on RabbitMQ.
Old Meesage body:
{
"project": "FOLDER/PROJECTNAME",
"number": "BUILDNUMBER",
"status": "SUCCESS|FAILURE|UNSTABLE.."
}
New meesage body:
{
"project": "PROJECTNAME",
"number": "BUILDNUMBER",
"status": "SUCCESS|FAILURE|UNSTABLE.."
}
Project name in old format is pretty much useless for automation (in example when you want to extract build parameters and other information using Python's Jenkins library)
You need to install RabbitMQ Consumer Plugin and configure it before using this plugin.
If you install this, RabbitMQ Build Trigger setting is added into your job project's build trigger section. please enable it then set your token. So build would be triggered if appropriate application message arrives.
Also adds Publish build result to RabbitMQ to Post-build Actions in your job's configuration. If you set this action, build result message is published to your specified exchange or queue in RabbitMQ. Published message is the below:
Properties:
content_type: application/json
app_id: remote-build
routingkey: ROUTINGKEY or org.jenkinsci.plugins.rabbitmqbuildtrigger
Message header:
jenkins-url: JENKINS_ROOT_URL
Meesage body:
{
"project": "PROJECTNAME",
"number": "BUILDNUMBER",
"status": "SUCCESS|FAILURE|UNSTABLE.."
}
{
"project": "RPROJECTNAME",
"token": "TOKEN",
"parameter": [
{
"name": "PARAMETERNAME",
"value": "VALUE"
},
{
"name": "PARAMETERNAME2",
"value": "VALUE2"
}
]
}
name in each parameters is compared with existing parameter name by case-insensitive.
A message must have two properties.
content_type: application/json
app_id: remote-build
This plugin can trigger pipeline jobs. In addition, this provides a trigger rmqRemoteBuild to triggers directive in pipeline script.
This can be used in Jenkinsfile e.g:
pipeline {
triggers {
rmqRemoteBuild(remoteBuildToken: '<TOKEN>')
}
}
MIT License
Copyright (c) 2013 rinrinne a.k.a. rin_ne