30 Days of DevOps: Jenkins and Jira
Another DevOps day at MagenTys.
Part of DevOps is to increase transparency and improve the end-to-end traceability of our user stories from the conception to the release out of the pipeline.
There are different ways to bring that in. One typical case is how we can track development activities inside our Jira tickets.
Jira has integration with multiple development tools and external systems. For example, we can have our source code in Github or Bitbucket and track any source code changes and the pull requests and branches created in our repo, all of it from inside the Jira ticket.
This helps the team to know what changes were made in the code for the purpose of this story.
But, despite this being a cool must-have, we can go one step further and also manage our build pipelines from our beloved Atlassian tool. We can, for example, trigger a Jenkins job every time a pull request is completed.
So the team can create the pull request from Jira, another team approves it and merge the code and then a Jenkins hook captures the commit and triggers the job.
At this point, you can think, “wow, that’s awesome!”. But hold your horses, it can be improved, even further, what about updating the ticket status back in Jira whenever the build fails or succeed? Now is where it gets fancy.
We can use Jenkins to call the Jira API to change the status of the ticket according to build job that is building the branch associated with the ticket, so now we don’t only have automatic builds from Jira/Bitbucket but also we can have Jenkins reporting to Jira what’s going on with the builds, which packages are created in Nexus or Artifactory.
For that, we can either use one of the many plugins available for Jenkins or call the Jira REST API from a Jenkins job task.
You can find some plugins in the Atlassian Marketplace too so you can do something fancy as the plugin below:
Thanks to this you can improve our code, build, test, release process and making the life easier for every development team member, and at the same time helping to generate the release page in confluence with the right stories, artefacts, and qualities signed off, but that’s another DevOps story for another day.
Bitbucket configuration: https://wiki.jenkins.io/plugins
Atlassian marketplace: https://marketplace.atlassian.com