RabbitMQ Build Trigger

Description

This plugin triggers build using remote build message in RabbitMQ queue.

Usage

This plugin needs RabbitMQ Consumer Plugin. It would be installed by dependency for this plugin. Then you need to 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:

A published message has 3 properties.

content_type: application/json
app_id: remote-build
routingkey: ROUTINGKEY or org.jenkinsci.plugins.rabbitmqbuildtrigger

And has 1 key in message header.

jenkins-url: JENKINS_ROOT_URL
{
    "project": "PROJECTNAME",
    "number": "BUILDNUMBER",
    "status": "SUCCESS|FAILURE|UNSTABLE.."
}

Application Message Format

A message must have two properties.

content_type: application/json
app_id: remote-build
{
  "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.

License

MIT License.

Version history

Version 2.5 (10/12/2017)

  • PR#5: Add NullPointerException protection to the getProjectName in RemoteBuildTrigger
  • PR#7: Workflow Job compatibility

Version 2.4 (10/12/2017)

  • Deployment failed. skip.

Version 2.3 (08/19/2014)

  • Add tests
  • Bump rabbitmq-consumer to 2.5
  • Bump maven-release-plugin to 2.5
  • Add dependency: Junit and JMockit
  • Remove feature which publishes message to queue directly
    • Publisher supports exchange type broker only
  • Trigger build with no parameter in message
  • Add routing key field to job config
    • If empty, default key will be used
  • Add Jenkins URL to published message header
    • Key: "jenkins-url"

Version 2.2 (03/24/2014)

  • Bumped consumer-plugin to 2.2
  • Bumped Java to 1.6

Version 2.1 (01/27/2014)

  • Bumped consumer-plugin to 2.1
  • Bumped Jenkins to 1.532.1

Version 2.0 (01/14/2014)

  • Bumped consumer-plugin to 2.0
  • Replace old interfaces to new one.

Version 1.9 (07/23/2013)

  • Bumped consumer-plugin to 1.9

Version 1.8 (07/18/2013)

  • Bumped consumer-plugin to 1.8
  • Add feature: publish message to queue directly

Version 1.7 (07/17/2013)

  • Bumped consumer-plugin to 1.7
  • Add RemoteBuildPublisher

Version 1.6 (05/30/2013)

  • Bumped consumer-plugin to 1.6
  • Improve locking opportunity

Version 1.5 (05/30/2013)

  • Bumped consumer-plugin to 1.5
  • More tolerant behavior on empty token

Version 1.4 (04/16/2013)

  • Bumped consumer-plugin to 1.4
  • Cleanup logging messages

Version 1.3 (04/09/2013)

  • Bumped consumer-plugin to 1.3

Version 1.2 (04/09/2013)

  • Fix "Cannot update token" issue.
  • Bumped consumer-plugin to 1.2

Version 1.1 (04/01/2013)

Re-release

Version 1.0 (04/01/2013)

Initial release