There is no escaping Jira.  Jira has become the gold standard when it comes to tools supporting agile methodology.  Given the size of the Jira footprint it would be downright foolish for DevOps tools not to make use of the APIs and integration offered by Jira, and FlexDeploy is no exception.  Jira integration has been supported since FlexDeploy 3.7 but since FlexDeploy 4.5 we can now leverage FlexDeploy’s Release Orchestration and Pipeline Automation in conjunction with Jira, resulting in some pretty impressive effects.

Some of the key benefits of integrating your FlexDeploy Release/Pipeline with Jira:

  • Developers spend less time updating statuses in Jira
  • Project and Release Managers spend less time asking developers to update Jira statuses
  • Reduced chance of statuses being incorrect or misleading in Jira
  • In depth reporting based on Jira Issues (more on this later)

Setting Up

In order to integrate Jira with FlexDeploy release and pipeline features, we should ensure the following:

  • Jira Workflow has steps that are similar to our Release Pipeline in FlexDeploy.
  • Jira instance is configured to update Issues after environment deployment.
  • FlexDeploy Projects are linked to Jira Issues.

Jira Project and FlexDeploy Release

For this blog article I have created a Jira Project called ‘HR’ and a corresponding FlexDeploy Release.  Below is the Jira Board for the project where there is a single story in the ‘Development’ step.

Configure your Jira Workflow with steps that are similar to our Release Pipeline in FlexDeploy.

HR Jira Board

Below is the FlexDeploy Pipeline for our HR Release.  For more information on configuring Releases and Pipelines you can check out these posts as well as the documentation on the wiki.

Create a FlexDeploy pipeline to automate and orchestrate your releases.

FlexDeploy HR Pipeline

We can see that our Pipeline will deploy our code across 5 environments:

  • Unit Test
  • System Test
  • User Acceptance Test
  • Performance Test
  • Production

FlexDeploy Jira Configuration

The last thing we need to do is make sure that FlexDeploy is updating the Jira statuses as projects move throughout the Pipeline.  The below information is configured under Administration->IssueTrackingSystems->Jira.

Configure FlexDeploy to update Jira statuses as projects move throughout the Pipeline.

Jira Configuration

Note: There are few additional configuration steps, such as setting up your status codes, populating urls etc.

Linking Jira Issues to FlexDeploy Projects

Link your Jira Issues to FlexDeploy for automatic updates.

Jira Issue present in the commit message

There are a couple of ways we can associate FlexDeploy Projects to Jira Issues.  The simplest way is to add the Jira Issue to the commit message when pushing a change to source control.  Consequently I used HR-2 in my Git commit message.

Add the Jira Issue to the commit message when pushing a change to source control for each integration with FlexDeploy.

FlexDeploy Project with Jira Issue link

My project was using Continuous Integration so once I pushed the above change the build and linking happened automatically.  Continuous Integration allows FlexDeploy to monitor Source Control for changes and initiate builds without anyone having to manually come click the build button.

Running through the Pipeline

Pipeline Execution can be easily reviewed using the FlexDeploy release dashboard.  It may help to take another look at the Pipeline.  I won’t be covering every status update along the way but will showcase a few key checkpoints.

Stage 1 (Unit Test)

Immediately after our build, FlexDeploy starts the Pipeline and executes Stage 1.  Stage 1 has no gates and only one step ‘Deploy All’, therefore our code immediately deploys to our Unit Test environment and Jira Status is updated to Unit Testing.

Integrate automated testing in your FlexDeploy pipeline.

HR-2 Issue after Unit Test Deployment

Stage 2 (System Test)

The System Test stage has a few key differences compared to Unit Test.  There is a deployment window gate of 12 – 1pm, which we can see below.

Utilize gates to ensure control as you move changes through your delivery pipeline.

Waiting for the System Test Deployment Window

Once the gate criteria is met, our deployment will be released to System Test and new status is updated in Jira.  Lastly, we will execute some System Tests, and test results will be used to control whether to progress to User Acceptance Testing environment or not.

Configure steps a build package must pass before moving to the next environment.

Executing System Tests

Stage 3 and beyond

The pattern throughout the remaining environments remains the same apart from different gates and steps.  Ultimately the pipeline ends with the final deployment to the Production environment at which point the Jira status will be updated to Complete.

A final look at our Jira Issue and the FlexDeploy project execution (I overrode the final deployment window in the Production environment to run immediately).

FlexDeploy's Jira integration allows you to easily connect this popular tool to your release pipeline.

HR-2 Issue in Complete status after Production deployment

Easily update Jira issues with FlexDeploy's Jira integration.

Project Execution for the Pipeline

Viewing the Issue History

The Jira Issue is also searchable in the Environment History Report to quickly allow you to view the life-cycle of a particular Issue.

Jira Issues are searchable in the Environment History Report to quickly allow you to view the life-cycle of a particular Issue.

Filtering on a single Jira Issue

Alternatively you can just export the entire report to gather information or filter on multiple Jira Issues.  The latter can be particularly helpful to get all the Jira Issues for a particular Release.

Once known as a bug tracking tool, Jira has evolved into the de facto standard for teams implementing agile methodologies.  Many organizations are making Jira the center of their universe for managing software releases, and therefore, creating a demand for integration into their overall DevOps solution. FlexDeploy’s Jira integration promotes the strengths of both products to create one seamless user experience!

Joel Wenzel

I have been working on integration and API architecture and development for the past 6 years, including with products such as Oracle SOA Suite, MuleSoft Anypoint Platform, Oracle Integration Cloud and API Platform, and Google Apigee. At Flexagon, I am part of the FlexDeploy engineering team which is enabling on prem and cloud use cases related to integration, API management, containers, and other tools and technologies.

More posts by Joel Wenzel
    

Leave a Reply

Your email address will not be published. Required fields are marked *