rlsbl v0.43.1 /rlsbl.commands.release_retry
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

python
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

python
def _has_assets_config()

Check whether any target has assets enabled in .rlsbl/config.json.

#_scaffold_retry_file

python
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

python
def _cleanup_retry_file(retry_path, log)

Delete retry.toml via saferm after successful retry.

#run_cmd

python
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 keys dry-run, yes, quiet, watch.