Skip to main content

Release Pipeline

Release Pipeline

Stable with Limitations

Validate, prepare, document, commit, tag, and publish a versioned release without post-push finalization.

Commandcusty run release

Category

Pipeline Profile

Quick Command

custy run release [OPTIONS]

versionchangelogcommittagpush

Overview​

Release is the complete public publication profile. It includes repository, commit, tag, and remote validation before it applies version state, generates release documentation, creates Git history, and pushes to the resolved remotes.

Preview and execute
bash
custy --dry-run run release
custy run release

Exact Phase Flow

Release Profile

1
Validate all release prerequisites
Run repository, pre-commit, pre-tag, and pre-push validation subprofiles.
completed
2
Prepare release state
Resolve the version, initialize workflow state, and prepare the tag message.
completed
3
Generate and review artifacts
Generate configured artifacts, open them for editing, and validate the edited files.
completed
4
Apply version
Write the resolved version through the active version update path.
completed
5
Generate changelog
Generate the configured changelog when the version and command rules allow it.
completed
6
Back up and clean
Back up commit and tag messages and apply retention cleanup.
completed
7
Commit and tag
Stage release files, create the release commit, and create the local tag.
completed
8
Push
Publish HEAD and the eligible release tag to resolved remotes.
current

Exact Release Step Order

Release expands nested validation profiles before the preparation and mutation stages.

01 — ensure_git_repo_stepRequire a Git repository.
02 — ensure_staged_changes_stepCheck commit staging readiness.
03 — ensure_commit_validation_provider_stepResolve built-in, Commitizen, or Git-policy message validation.
04 — ensure_commit_hook_policy_stepResolve native hooks or safe direct pre-commit execution.
05 — ensure_commit_message_file_stepValidate the configured commit-message file setting.
06 — ensure_commit_message_file_exists_stepRequire the commit-message file.
07 — ensure_version_file_stepValidate the configured version file.
08 — ensure_tag_message_file_stepValidate the configured tag-message file setting.
09 — ensure_tag_message_file_exists_stepRequire the tag-message file.
10 — ensure_remote_exists_stepRequire resolved Git remotes.
11 — prepare_version_stepResolve the release version and tag context.
12 — workflow_init_stepInitialize branch workflow state.
13 — prepare_tag_message_stepPrepare the tag message for the resolved version.
14 — generate_artifacts_stepPreserve reviewed messages and generate only missing or empty artifacts.
15 — edit_files_stepOpen release files for review and editing.
16 — validate_edited_stepValidate the edited artifacts.
17 — apply_version_stepApply the resolved version through the configured update path.
18 — generate_changelog_stepRun conditional changelog generation.
19 — backup_commit_message_files_stepBack up the commit-message file.
20 — backup_tag_message_files_stepBack up the tag-message file.
21 — cleanup_backup_stepApply backup retention cleanup.
22 — stage_stepStage the resolved release files.
23 — commit_stepRun the resolved hook plan and create the release commit.
24 — tag_stepCreate the local release tag.
25 — push_stepPush HEAD and the eligible release tag to resolved remotes.

Before You Run

Before You Begin

  • Start from reviewed Git stateRequired

    Confirm branch, status, staged files, existing tags, and remotes.

  • Validate project configurationRequired

    Check version strategy, paths, templates, changelog rules, and remote policy.

  • Review message filesRequired

    Ensure commit and tag messages exist and satisfy the configured convention.

  • Preview with dry-runRequired

    Read every planned file, Git, and remote action before normal execution.

  • Plan recoveryRequired

    Know how you will inspect and reconcile a partial commit, tag, or push.



Release or Full?

Release ends after push. Full contains the same Release stages and then invokes experimental branch workflow finalization. Prefer Release unless that post-publication transition is deliberately required and understood.


Continue