Skip to content

ci(release): keep synthetic develop release commits out of main pushes #523

Description

@tvna

Scope

Fix the post-merge Release workflow failure after #522.

Observed failure

The Release job reaches semantic-release and successfully analyzes synthetic release commits prepared from develop, then fails during the semantic-release step.

Suspected cause

The synthetic commits are useful for semantic-release analysis, but they remain in the local main history. The release push can therefore try to publish those synthetic commits to protected main alongside the release commit.

Proposed fix

  • Record the original main HEAD before creating synthetic release commits.
  • Let semantic-release analyze the temporary synthetic commits.
  • Before @semantic-release/git creates the release commit, reset HEAD back to the recorded main HEAD while preserving generated release file changes.
  • Persist released develop source SHAs in tracked release metadata so scheduled releases do not repeat the same develop merge titles.

Acceptance criteria

  • Existing release-management tests pass.
  • New tests prove release preparation records base/source state and apply_version restores the base before release assets are committed.
  • Release docs describe the temporary-commit and metadata behavior.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions