Automates the git-flow release and hotfix process via GitHub Actions.
Triggered manually from the Actions tab via workflow_dispatch.
| Input | Required | Description |
|---|---|---|
release_version |
Yes | Release version (e.g. 1.0.0, 3.0.0v1) |
release_type |
Yes | main or hotfix |
release_mode |
Yes | approvable or auto-complete (ignored for hotfix) |
source_branch |
Hotfix only | Support branch for hotfix (e.g. support/1.x) |
Main release — auto-complete (maintainers only)
- Validates actor has maintainer/owner permission
git flow release start→ changelog →release publish→release finish- Pushes to
main,develop, and tags - Release is complete in a single run
Main release — approvable (anyone)
git flow release start→ changelog →release publish- Creates a PR:
release/<version>→develop - Stops and waits for PR approval
- On approval, the second workflow finishes the release
Hotfix (always auto-complete)
- Requires
source_branchinput (support branch) git flow hotfix start→ changelog →hotfix finish- Pushes only the source branch and tag (main/develop are NOT pushed)
Triggered automatically when a release/* PR targeting develop is approved.
- Checks that the PR review decision is
APPROVED - Checks out the
release/*branch from remote - Runs
git flow release finish(merges to main + develop, creates tag) - Pushes
main,develop, and tags - Closes the PR with a comment
- Settings → Actions → General → Workflow permissions: Select "Read and write permissions"
- Settings → Actions → General: Check "Allow GitHub Actions to create and approve pull requests"
- Enable "Require a pull request before merging" on
develop - Enable "Require approvals" with at least 1 required reviewer
Accepted formats: 1.0.0, 1.2.3-rc1, 3.0.0v1, 1.0.0.beta2
Must start with major.minor.patch (digits), with an optional alphanumeric suffix.
Dispatch → validate version → authorize (maintainer check)
→ release start → changelog → release publish → release finish
→ push main + tags + develop → ✅ Done
Dispatch → validate version
→ release start → changelog → release publish
→ create PR (release → develop) → ⏸️ Wait for approval
PR approved → finish-on-approval workflow triggers
→ release finish → push main + tags + develop
→ close PR → ✅ Done
Dispatch → validate version → validate source_branch
→ checkout main + source branch → hotfix start → changelog
→ hotfix finish → push source branch + tag → ✅ Done