BuildMaster is an Application Release Automation tool. In this tutorial, we will demonstrate how to integrate YouTrack with BuildMaster to automate a deployment process.
Issue tracking is a cornerstone of the application release process and facilitates communication of specific features and issues. As you adopt a DevOps, integrating issue tracking into your toolchain is a key step in allowing faster releases while maintaining compliance, security, and traceability. After joining YouTrack with BuildMaster you'll be able to automate your existing processes that are in place and easily enable new process as part of your DevOps adoption.
With the YouTrack Extension and BuildMaster, you can:
First you'll need to install the YouTrack Extension (version 5.6 or higher)
Administration > BuildMaster Extensions > YouTrack
Then create a Resource Credential to link BuildMaster to YouTrack.
Administration > Resource Credentials > Create Credential > YouTrack
Although the resource credential will work with a user name and password, it is recommended to create a permanent token.
Next, navigate to an application to associate it with a YouTrack project: click on Issues > Configure External Source > YouTrack Issue Source and fill in the appropriate fields.
We're using the Variable $ReleaseNumber so that we can tie issues in YouTrack to a release in BuildMaster without having to specify a single release.
Issues in BuildMaster should always be associated with a release. YouTrack however has no concept of a release, so the YouTrack issue source uses the Project and Fix version version fields in YouTrack to determine which issues to pull for a particular release. If your filter needs to be more complicated (multiple projects, different fields, etc) you can use a search query from the YouTrack dashboard.
When defining an issue source, you can use configuration variables and functions such as $ReleaseNumber. When run, these will be replaced with the appropriate value; for example if you have “ABlast” as the Project name and “v$ReleaseNumber” as the Fix for Version, and you’re viewing release 2.0 in BuildMaster, then the issue source will pull all issues the ABlast YouTrack project that have "v2.0" as their Fix for Version.
After manually configuring an issue source, any time you visit that application's overview page in BuildMaster, it will automatically refresh issues from that issue tracker. You can also manually refresh by going to Issues > Configure External Source > Manually refresh. Manually refreshing will also provide additional information like Execution Details including execution logs.
After configuring YouTrack as the issue source, the overview page of your application’s release will display all issues in YouTrack assigned to that release, regardless of YouTrack status.
You can also view all issues from the issues tab, regardless of release.
Configuring an issue source in BuildMaster provides more functionality than increase visibility for the development teams. Additional useful capabilities are added once an issue source is configured.
First, we can put an Issues Resolved gate at the production (or staging) stage of your BuildMaster pipeline. This gate restricts a release package from moving forward unless every issue that is assigned to that release has a specific status (Done or Closed). This serves as a final check point, ensuring that every issue associated with this release has the appropriate status. In many cases ensure that a feature or bug is Done.
This can be done at any stage of a pipeline for any status that would be appropriate. This works as a check, but doesn’t make using an issue tracker any easier. We can also automate the stages that an issue travels through in BuildMaster.
BuildMaster also allows you to create a YouTrack issue from within BuildMaster.
You can do this directly from within a deployment plan using the Create YouTrack issue operation.
While monolithic deployment solutions are fast becoming a thing of the past, it doesn’t mean that the tools used to deploy a modern application in a DevOps environment should be isolated either. Integrations that make sense, increase visibility, and help automate manual tasks create a stronger DevOps toolchain and allow you to expand on the many process you already have in place.