How to know that a feature or a fix is in production

At BIME Analytics we are using Trello to manage all the things that need to be done, all the things that we are currently working on and everything that is done. When our support team wants us to have a look at something they add a ticket to a special column. This ticket will then be prioritized and will eventually be moved to the list of things that needs to be done. And once it’s done it will be moved to the done list. The only problem with this organization is that a ticket is moved to the done list when the development work is done, but it has yet to be reviewed and then deployed. For most things this process happens quickly but for some it can take a little bit longer. For the tickets where the process is longer the support team kept asking about whether the feature/fix was in production or not. We knew that we could find a better way to let our support team know about the deployment status of a ticket without human intervention.

Tracking version number

Each service that we have in production has a version number. The version number is the SHA of the latest git commit from which the artefact was build. This version is stored in a table in Dynamodb so we can easily access it. Basically our table in Dynamo looks like this:

Dynamodb SHAs

Tracking deployment status in Trello

The solution that we came up with is to add the link to the GitHub commit in the Trello ticket once the development is done and we prefix our commit messages with the name of the service(s) it refers to. This is what it looks like in Trello and in GitHub:

Trello card with GitHub commit

GitHub commit with message

Tying it all together

The last thing we needed to do is to write a script that will fetch for each service that we have the version number of the currently deployed version, retrieve every ticket that is in the done list in Trello and get the latest commits from GitHub. Once the script fetched everything that it needs it will check if a ticket has a comment with a link to a GitHub message and if it does it will compare the SHA with the versions that are in production. It will then prefix the ticket title with either [[ IN PRODUCTION ]] or [[ NOT DEPLOYED ]]. The final step is to add the script to our CI server to make it run every 10 minutes and voil‡!

Now everyone can see if the features and issues referenced in Trello are in production or not without any extra effort.

← Back to Home

Matthieu Ravey
comments powered by Disqus