AFAICT, currently there are no release branches for specific deployments so we could switch to a flow where stable versions are marked by tagging commits on the main branch.
We could create a GitHub Action that runs when a new tag is created and would deploy to the GitHub container registry. After that, every deployment could automatically pull updates using watchtower.
Alternatively, instead of tags, we could just have the action be triggered manually, or even on every push to main.
I use the flow with tags here, where a new nuget package is published when creating a new release, thereby creating a new tag. (workflow file)
I don't like that pull request information, for example, which commits belong together, is lost by using rebase and merge. My suggestion is to keep pull requests small and use squash and merge .
Tasks
[ ] Disallow rebase and merge and allow squash and merge
Main branch
It's way too easy to accidentally push changes to main/staging.
Deployment
AFAICT, currently there are no release branches for specific deployments so we could switch to a flow where stable versions are marked by tagging commits on the main branch. We could create a GitHub Action that runs when a new tag is created and would deploy to the GitHub container registry. After that, every deployment could automatically pull updates using watchtower.
Alternatively, instead of tags, we could just have the action be triggered manually, or even on every push to main.
I use the flow with tags here, where a new nuget package is published when creating a new release, thereby creating a new tag. (workflow file)
Tasks
(optional) Create a ruleset forv*
tagsMerging
I don't like that pull request information, for example, which commits belong together, is lost by using rebase and merge. My suggestion is to keep pull requests small and use squash and merge .
Tasks
Main branch
It's way too easy to accidentally push changes to main/staging.
Tasks
Sources