Skip to content

axelbodin/rabbitmq-build-trigger-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rabbitmq-build-trigger: RabbitMQ Build Trigger Plugin for Jenkins

About this fork

This fork is a minor tweak for the post build action that publishes the full project name instead of only the last part.

Synopsis

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)

Usage

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.."
}

Application Message Format

{
    "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

Pipeline support

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>')
    }
}

Material

License

MIT License

Copyright

Copyright (c) 2013 rinrinne a.k.a. rin_ne

About

This is a Jenkins plugin to trigger buuid using remote build message in RabbitMQ queue.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 95.4%
  • HTML 4.6%