Skip to main content

relctl

Provider-agnostic release management CLI — SemVer driven by branch names, or CalVer driven by the date. One binary, zero release boilerplate.

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 want a fully managed SaaS release tool
You build multi-arch binaries in a CI matrix
You need calendar versioning (YYYY.MM.DD.N)
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

Versioning schemes

SemVer (default)

The bump level is derived from the merged branch prefix:

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

CalVer

Format: YYYY.MM.DD.N (e.g. 2026.06.01.3). No branch prefix or PR context required.

N is calculated from local git tags only — no SCM API call, fully provider-agnostic. Requires fetch-depth: 0 (already a general relctl prerequisite).

Enable via .relctl.yaml or the --version-scheme flag:

# .relctl.yaml
version_scheme: calver
relctl release create --version-scheme calver --dry-run
# → Would create new release with version: 2026.06.01.1

Supported environments

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