On this page
File-driven release retry that reads retry.toml, re-creates a GitHub Release to re-trigger CI/CD, re-uploads assets, and dispatches configured workflows.
#rlsbl.commands.release_retry
#rlsbl.commands.release_retry
Release retry command that re-creates a GitHub Release to re-trigger CI/CD workflows.
When a GitHub Release exists but CI/CD never ran (e.g., GitHub Actions outage), this command deletes the release and re-creates it with the correct release notes. This fires a new release: published event, re-triggering the Publish workflow. It also re-uploads release assets if configured, and dispatches all workflows listed in retry.toml via gh workflow run.
The command is file-driven: it reads .rlsbl/releases/retry.toml for configuration (version, workflows, ci_ref, assets). If the file does not exist, it auto-scaffolds one from project state and proceeds.
#_find_dispatch_workflows
def _find_dispatch_workflows()Scan .github/workflows/ for YAML files that contain workflow_dispatch.
Returns a list of filenames (not full paths) that support manual dispatch.
#_has_assets_config
def _has_assets_config()Check whether any target has assets enabled in .rlsbl/config.json.
#_scaffold_retry_file
def _scaffold_retry_file(retry_path, version_dir, target, monorepo_name, monorepo_project_path, log)Auto-scaffold retry.toml from project state.
Returns the RetryConfig after writing the file.
#_cleanup_retry_file
def _cleanup_retry_file(retry_path, log)Delete retry.toml via saferm after successful retry.
#run_cmd
def run_cmd(retry_config, flags)Re-create a GitHub Release to re-trigger CI/CD workflows.
Deletes the existing GitHub Release for the configured version and re-creates it with the same changelog notes. This fires a new release: published event. Re-uploads release assets if configured. Dispatches all workflows listed in retry config via gh workflow run.
Args:
retry_config: RetryConfig instance, or None to auto-scaffold.flags: dict with keysdry-run,yes,quiet,watch.