This work by automatically pushing a new tag on main and release branches after each commit. The tag will be "devel" on main and the version from postgrest.cabal for release branches. The release workflow then runs as a tag pipeline, making the actual release. For release branches, the tag will only be created if a tag for this version doesn't exist, yet. This means to actually make a new patch release, we still need to bump the version in postgrest.cabal. We can automate this later as part of our backport-bot. This is a back-port of the following commits: -dd8d51ab-fe0f2f70-58d81334-9fe90bf9-c67f1c39-8433f981-d9ba9a82-a57d12b1-b006016d