Example workflows for automated releases in a GitFlow-style project using GitHub actions.
This repository contains GitHub workflows that allow for fully automated release as per the GitFlow conventions. You are welcome to use it for inspiration for your own release workflows or maybe even copying them verbatim if the fit your needs.
If you are using the workflows as they are in this repository, there are only two manual steps for releasing a new version:
The automation will do the following things:
I've written a blog post that describes the technical design in detail here: https://blog.eizinger.io/12274/using-github-actions-and-gitflow-to-automate-your-release-process
NOTE: The workflows and actions in this repository were changed since the blogpost was published. Please see the CHANGELOG.md for a detailed summary.
The idea of these workflows is to automate all the tedious aspects of releases while still allowing manual intervention if necessary and control over crucial aspects.
I think I've achieved this by doing the following:
This allows you to adapt the workflows to your own needs. Ironically, this is what makes this whole repository not special. It just takes good ideas that are already out there and creates automation around them.
There is no magic involved, only the tedious things are automated. You have full control over what is being released and under which version.
If you are using these workflow or got inspired by them to build something similar, feel free to add yourself to this list:
MIT.