How to use CLI notifications

Description

Bamboo notification support is an opportunity to do something after a build has completed. The Bamboo notification framework allows built-in and customized notifications to be triggered after the completion of the build. Bamboo also provides a number of built-in conditions that determine when notifications can be triggered. We are taking advantage of the notification protocol to allow CLI actions to be used triggered by the notification framework. While many CLI can be considered traditional notifications (like Hipchat sendMessage), the support provided is open ended and allows for any CLI action to run. This enables some unique scenarios that solves some long requested use cases involving doing things after a build has completed. With CLI conditional running of actions, even more advanced conditioning can be done to do things like running some action if a build was successful and different actions if a build was not successful.

Use Cases

CLI notifications enable a number of diverse use cases:

Traditional Notifications

  1. Slack - send message or notification
  2. Jira - add comment
  3. Confluence - add comment
  4. Bamboo - add comment

Advanced Use Cases

  1. Jira - create issue
  2. Bamboo - add labels
  3. Bamboo - queue build
    1. To do additional tear-down activities based on build result
    2. Retry build conditioned on first failure or similar

Features

  • Configure via UI or Bamboo CLI
  • Use Bamboo variables to centralize configuration
  • Use CLI conditioning to find tune exactly when something should be done

UI Configuration

Global variable: notifyHipchatOnFailureAction
hipchat -a sendMessage --room Bob --message "Failed: ${bamboo.buildResultKey}" --token ${bamboo.chatToken} --server https://chat.examplegear.com 


Global variable: restartFailedPlanAction
-a runIf --options negative -p *** --regex (?i)((SUCCESS)|([2-9]\d*)) --value ${bamboo_buildState}-${bamboo_restartCount} -i "-a queueBuild --build ${bamboo.buildResultKey}"


Recommend using Bamboo 6.3 and higher for nested variable support which makes configuration easier.

Pseudo Bamboo Variables

Some new pseudo Bamboo variables have been defined to provide some additional variables that can be used in CLI Notifications.