Skip to content

Releasing

Overview

Releases are automated via the CD pipeline. Merging to staging or production triggers a version bump, changelog generation, GitHub Release, and SDK publish — unless the merge is a back-merge of an existing release commit.

Environments

BranchEnvironmentAccountVersioning
devDevelopmentDevelopmentNo version bump
stagingStagingPartnerVersion bump on merge
productionProductionPartnerVersion bump on hotfix only

Version Strategy

  • All packages share a single version (fixed mode via Nx Release)
  • Versioning follows Conventional Commits
  • Tags use the format vX.Y.Z
  • The SDK (@devizovaburza/mdm-sdk) is published to npm with each new version

Standard Release Flow

dev → staging → production
  1. Code is merged into dev — deployed to dev environment, no version bump
  2. dev is merged into staging — version is bumped based on conventional commits, tag is created, GitHub Release is published, SDK is published to npm, workers are deployed
  3. staging is merged into production — the merge commit is a release commit (chore(release): vX.Y.Z), so the version bump is skipped and workers are deployed with the existing version

Hotfix Flow

hotfix → production → staging → dev
  1. Hotfix branch is merged directly into production — version is bumped (patch), tag is created, GitHub Release is published, SDK is published to npm, workers are deployed
  2. production is back-merged into staging — the HEAD is a release commit, so the version bump is skipped
  3. staging is back-merged into dev — no release steps on dev

What Happens on Merge

The CD pipeline runs the following steps on merge to staging or production:

  1. Check if HEAD is a release commit (chore(release): v*) — if yes, skip release steps
  2. Bump version via nx release (conventional commits determine major/minor/patch)
  3. Push version commit and tag
  4. Create GitHub Release with changelog
  5. Publish SDK to npm (skipped if version already exists)
  6. Inject version into worker configs
  7. Deploy infrastructure
  8. Run database migrations

Canary Releases

Every merge to dev publishes the SDK to npm with:

  • Version: X.Y.Z-canary.<short-sha> (e.g., X.Y.Z-canary.abc1234)
  • npm tag: canary

Install with:

bash
npm install @devizovaburza/mdm-sdk@canary

Canary releases do not create git tags or GitHub Releases.