Skip to content

CLI Reference

These flags are available on every command:

FlagDefaultDescription
--config.semrel.yamlPath to the configuration file
--dry-runfalseSimulate the release without making any changes
--versionPrint the semrel version and exit
--helpShow help for any command

Runs the full release pipeline:

  1. Loads plugins from .semrel/
  2. Verifies CI conditions (CIConditionPlugin)
  3. Fetches commits since the last release (ProviderPlugin.GetCommitsSince)
  4. Analyses commits and determines the version bump (CommitAnalyzerPlugin)
  5. Generates the changelog (ChangelogGeneratorPlugin)
  6. Updates version strings in tracked files (FilesUpdaterPlugin)
  7. Creates the git tag and platform release (ProviderPlugin.CreateRelease)
  8. Calls success / failure hooks (HooksPlugin)
Terminal window
semrel release [flags]

Examples:

Terminal window
# Preview what the release would do
semrel release --dry-run
# Use a non-default config location
semrel release --config ./config/semrel.yaml
# Dry-run with a custom config
semrel release --dry-run --config ./config/semrel.yaml

Validates commit messages since the last release against the configured rules. Useful as a pre-merge CI check.

Terminal window
semrel lint [flags]

Examples:

Terminal window
# Lint commits using the default config
semrel lint
# Lint with a custom config
semrel lint --config ./config/semrel.yaml

Exits with code 0 if all commits are valid, 1 otherwise. CI systems can use this to block merges of non-conformant commits.