Skip to main content

relctl

Automated SemVer releases driven by your branch name — no scripts, no config files, one binary.

Is this for you?

✅ Good fit❌ Not a fit
Your team uses branch prefixes like feature/, fix/, major/You need GitLab, Bitbucket, or Azure DevOps
You release via GitHub ReleasesYou need calendar versioning or fully custom schemes
You build multi-arch binaries in a CI matrixYou want a fully managed SaaS release tool
You want zero release boilerplate in your pipelines

Quickstart

# .github/workflows/release.yaml
on:
push:
branches: [main]

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- uses: layer87-labs/relctl-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

- run: relctl release create --merge-sha ${{ github.sha }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Merge a feature/my-thing branch → relctl creates a MINOR GitHub Release draft. Done.

Branch → version mapping

The SemVer bump is derived from the merged branch prefix. The trailing / is required.

BumpBranch prefixesExample
MAJORmajor/1.2.3 → 2.0.0
MINORminor/, feature/, feat/1.2.3 → 1.3.0
PATCHpatch/, fix/, bugfix/, dependabot/1.2.3 → 1.2.4

Override version via PR comment

Post a comment on the pull request before merging to override the derived bump:

CommentEffect
relctl_patch_level: majorForce a major bump regardless of branch name
relctl_version_override: 2.1.0Pin the release to an exact semver value

Supported environments

EnvironmentStatus
GitHub Actions✅ Full
GitHub Enterprise✅ Full
Jenkins Pipelines✅ Full
Local CLI✅ Full

Supported environments

EnvironmentStatus
GitHub ActionsFull
GitHub EnterpriseFull
Jenkins PipelinesFull
Local CLIFull