Today we have a guest post from Himanshu Chhetri, a developer at Addteq (an Atlassian Expert) who works with the Configuration Management and Atlassian Solutions delivery teams. In his free time he likes to keep up to date with the latest open source projects and the devops movement.
At Addteq, we have a growing list of projects that we automate using Bamboo including our website deployments, mobile apps, J2EE project builds and others. We’re very excited about the latest iteration of Bamboo now that it has added deployment projects to keep track of which versions deployed to various environments.
Atlassian tools are not limited by their rich set of standard features alone; there is a robust and rich eco-system of plugins that range from UI customization to extensive sets of additional capabilities as well. While Bamboo may not have the sheer number of plugins as compared to JIRA or Confluence, as of this writing, it does have a noteworthy 145 add-ons and extensions. Below are five of my favorite plugins for Bamboo that I have found useful and believe worthy of attention to fellow bamboo users.
#1: JavaMelody Monitoring Plugin
This plugin is one of my most recent discoveries in the Atlassian Marketplace. I came across it as I was looking for a solution to monitor Bamboo performance and health. My only minor quibble about JavaMelody is that it is a Plugins 1 type add-on which means it has to be downloaded and copied to the lib/ directory of Bamboo before it is restarted. However, if the question is whether it is worth the effort, then the answer would be a resounding “yes”. Some of the statistics provided by this addon and listed on its website are:
- A summary indicating the overall number of executions, the average execution time, the cpu time and the percentage of errors.
- Percentage of time spent in the requests for which the average time exceeds a configurable threshold.
- Complete list of requests, aggregated without dynamic parameters with, for each, the number of executions, the mean execution time, the mean cpu time, the percentage of errors and an evolution chart of execution time over time.
- Mean number of sql executions and the mean sql time.
All of this data is also presented in the form of pleasant looking and easy to decipher graphs like the example below:
#2: Heroku Deploy Plugin for Bamboo
Amazon Web Services has revolutionized IaaS ( Infrastructure as a Service ) ushering the era of elastic cloud computing. On the other hand, Heroku has been a pioneer of PaaS ( Platform as a Service ) by making deployments a “git push” away and making it possible to deploy web applications without having to deal with the nitty-gritty of setting up servers, hosting plans, web application server and a zillion of other equally loathed and enjoyed tasks by devs and ops.
The Heroku Deploy plugin makes it even more convenient for Bamboo users to be able to deploy by simply adding a “Deploy WAR artifact task”. There is an extensive post on the Atlassian Bamboo blog that goes into detailed coverage about this plugin. My recommended way of taking this plugin for a spin is to build an open source project like OpenTripPlanner using the builtin Maven Bamboo task and then using the Heroku plugin to add the Deploy War task to instantly deploy the webapp.
As of the date of writing this blogpost there seems to be no announcement for supporting Bamboo 5 but hopefully this will be remedied soon.
#3: Bamboo iOS, Cocoa and Xcode Support
Continuous Deployments might be a term mostly associated with web applications but there is no reason for this idea to not also be extended to mobile applications. Setting up builds of iOS applications involve dealing with a slew of concepts like build schemes, provisioning profiles, keychains, code signing etc. Thankfully, this is a plugin by Atlassian Labs which adds support for building iOS and Mac OSX applications in Bamboo.
While the iOS app store might be one of the most robust application delivery platforms in the world, deploying iOS applications to testers continuously over the air is a bit of a challenge due to Apple’s well justified strict policy for prohibiting unsigned code from being executed. A good companion to the Xcode plugin is the TestFlight service that has a REST API for distributing apps to testers. Using the robust “Script” task in Bamboo to execute a script to upload the iOS app artifact to TestFlight enables testers to receive regular builds and provide feedback to developers in a frictionless manner.
The change-log for this plugin looks exciting with newly added features like support for executing tests in the iOS simulator and Bamboo 5 compatibility.
#4: Bamboo Continuous Plugin Deployment
I have a very interesting anecdote regarding this plugin and its usefulness to Atlassian plugin developers. One of Addteq’s developers, currently involved in writing a custom Confluence plugin, was traveling on a weekend and was contacted regarding a critical bug that was discovered in the plugin in production. The developer realized the fix only required a few lines of code change and felt confident it could be finished in transit between two long flights. Alas, the protagonist of this incident did not have the work laptop equipped with Atlassian SDK necessary for building the new version of the plugin.
Thankfully, the developer recalled that we had setup the deployment of this particular Confluence plugin to a test environment using the “Bamboo Continuous Plugin Deployment” which automatically deploys a Confluence or JIRA plugin to a remote instance. To make the code change, the developer was able to use Atlassian Stash since we were experimenting with the realtime editor plugin. Bamboo faithfully deployed the new version of the plugin to the test environment which the developer was able to use to validate the bug fix. Finally, the developer downloaded the plugin jar file from the artifact section of the Bamboo build and sent the patched version to the grateful users.
#5: REST Add-on for Addteq’s Stix Mobile Application
Last but not the least this plugin enables Bamboo to go mobile. The Stix Android and iOS applications enable users to access many of the features of Bamboo on a mobile device. The major highlights of the Stix apps are:
- Check the status of all of your projects on your Bamboo server.
- View details of a specific build.
- View statistics of your projects presented in easy to read graphs.
- Want to find out why the build was triggered? Why it failed? You can take a look at what files changed and who changed them.
- You can check the log file broken down into the important elements to let you find out what happened quickly.
- After checking the cause of a build failure, you can even tell the server to restart the build directly from the app.
- Post comments on Bamboo builds!
The only pre-requisite for accessing all of the features of Stix is to install the companion Bamboo plugin into the instance you want to connect to. Currently the add-on is officially supported for Bamboo 4 and support for Bamboo 5 is underway!
And there you have it! You can read more about these plugins on the Atlassian Marketplace. There you will be able also to find info on many more useful plugins and extensions. Even if you don’t find a particular plugin your looking for, keep in mind, Atlassian Experts, such as myself are always standing by to help build and customize your Atlassian tools to suit your needs.