Improving client communication during deployments
Heads up: This post is over 8 years old. People, opinions, and industries change — some of this may be outdated.
As my deployment processes evolve, I like to find new ways I can communicate valuable information to my clients. Of course, I like to automate this process as much as possible so I can focus on what I do best, writing code.
Using Laravel Forge easily allows one way of sharing statuses with its deployment notifications. With some clients, I have shared a Slack channel with them so they can see deployment statuses in real time.
A downside to this is when a deployment fails, the client will also be notified.
Since most of my projects are applications, I use semantic versioning (Semver). When generating changelogs, I compile a list of commits per release. Recently, I have automated and integrated this into my deployment process.
Generating Changelogs
#!/usr/bin/env bash
previous_tag=0
for current_tag in $(git tag --sort=-creatordate)
do
if [ "$previous_tag" != 0 ];then
tag_date=$(git log -1 --pretty=format:'%ad' --date=short ${previous_tag})
printf "## ${previous_tag} (${tag_date})\n\n"
git log ${current_tag}...${previous_tag} --pretty=format:'* %s [View](https://bitbucket.org/projects/test/repos/my-project/commits/%H)' --reverse | grep -v Merge
printf "\n\n"
fi
previous_tag=${current_tag}
done
After a successful deployment, I run this bash script which generates the current changelog. Once the changelog.md file is updated, I trigger an Artisan command that sends an email to myself and the client with the changelog as an attachment.
Now whenever I trigger a deployment, my client receives a detailed changelog of what is in the current release. Along with the changelog the email itself is indication that the deployment has been finished.