Skip to content

ci: automate idempotent GitHub Releases #1

Closed

Description

@egdev6

Problem

Publishing a GitHub Release is currently a manual step, which can let the package version, Git tag, and release metadata drift apart.

Proposed solution

Add a GitHub Actions workflow that runs after tests on pushes to main, derives the release tag from package.json, creates an annotated tag at the pushed commit only when absent, and creates a generated-notes GitHub Release only when absent.

Acceptance criteria

  • The workflow runs the existing test suite before release operations.
  • The tag is derived as v<package.json version>.
  • A missing tag is created as an annotated tag at the pushed main commit.
  • An existing tag is never moved or recreated.
  • A missing GitHub Release is created with generated notes.
  • An existing GitHub Release is left unchanged.
  • Re-running the workflow is idempotent.
  • The README documents installation and release behavior.

Scope and non-goals

Scope is limited to the release workflow and its README documentation. It does not publish to npm, bump versions, retag existing versions, or create releases from non-main branches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions