How to automatically deploy new p2 plug-in versions to the Atlassian Marketplace

Creating a new version of a p2 plug-in for the Atlassian Marketplace means going to the Marketplace web UI and clicking through a bunch of steps including uploading a new JAR file of your plug-in, entering the build number, release summary and notes, choosing compatible host products etc. While this costs time and effort, you also have to be careful to upload the exact same JAR file you downloaded from your CI build system. Also, you have to duplicate some information because when using JIRA you have the release summary and notes already in your JIRA project.

Because of all these issues, we didn’t ship as many new plug-in versions as we possibly could because the process was kind of cumbersome. To really do continuous deployment and ship individual new features as soon as they are ready, we needed to automate the whole process. The result is our new Bamboo task ShipIt to Marketplace. It is free and open source, licensed under Apache 2. All you have to do is to add this task to your Bamboo plan:


Bamboo task configuration of the ShipIt to Marketplace plug-in

Bamboo task configuration of the ShipIt to Marketplace plug-in.

The Bamboo task creates new versions of your Atlassian plug-ins by uploading them to the Marketplace and by providing all necessary information for a new plug-in version like release notes, build number, etc. automatically. It supports two ways of creating new plug-in versions:

1. You create a release with a new build from the JIRA release panel

2. You push new commits to a branch (e.g., master) or trigger a Bamboo build manually

For both use cases, the plug-in collects the necessary information like the release version, the name and the summary from the associated JIRA project version. This means that you don’t have to supply all the information for a new Marketplace version of your plug-in manually, but instead this Bamboo task is able to do this for you. It also creates release notes based on the JIRA issues associated with a JIRA project version. And you can even specify a JQL to only use specific JIRA issues for creating the release notes!

The plug-in already uses the new Marketplace version 2 API. It works for both ordinary build plans and deployment projects. But note that it is not compatible with remote agents yet. Something we are working on…

The plug-in already uses the new Marketplace version 2 API. It works for both ordinary build plans and deployment projects. But note that it is not compatible with remote agents yet. Something we are working on…

You can find more information about the plug-in on Github and you can install it from the Marketplace listing.

As always, you’re feedback is very welcome. Just comment below or create a Github ticket.