Skip to content

Support prerelease versions in the release pipeline#50

Merged
lbebber merged 1 commit into
mainfrom
prerelease-support
Jun 17, 2026
Merged

Support prerelease versions in the release pipeline#50
lbebber merged 1 commit into
mainfrom
prerelease-support

Conversation

@lbebber

@lbebber lbebber commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • release-version.js: normalizeVersion now accepts X.Y.Z-<prerelease> versions (e.g. 1.2.3-alpha.1). Returns prerelease and distTag fields (distTag is derived from the first segment: alpha from alpha.1).
  • publish-packages.js: Passes --tag <distTag> to npm publish for prereleases so they don't become latest.
  • release-workflow.js: Prereleases can be dispatched from any branch (not just main). Stable releases still require main. Skips the assertOriginMainSha check for prereleases.
  • release.yml: tag_and_dispatch job now runs from any branch. The JS scripts enforce the main-only constraint for stable releases.

Usage

Dispatch the Release workflow from any branch with a version like 1.2.3-alpha.1. It will:

  1. Tag and build as usual
  2. Publish to npm under --tag alpha (not latest)
  3. Users can test with npm i -g @customerio/cli@alpha

Test plan

  • Existing tests updated and passing
  • Dispatch a dry-run from a non-main branch with a prerelease version
  • Publish an actual alpha release and verify npm i -g @customerio/cli@alpha works

Accept X.Y.Z-<prerelease> versions (e.g. 1.2.3-alpha.1) so we can
publish test releases without affecting the latest npm tag. Prereleases
can be dispatched from any branch; stable releases still require main.
@lbebber lbebber merged commit 1030c43 into main Jun 17, 2026
3 checks passed
@lbebber lbebber deleted the prerelease-support branch June 17, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant