Appearance
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
| Branch | Environment | Account | Versioning |
|---|---|---|---|
dev | Development | Development | No version bump |
staging | Staging | Partner | Version bump on merge |
production | Production | Partner | Version 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- Code is merged into
dev— deployed to dev environment, no version bump devis merged intostaging— version is bumped based on conventional commits, tag is created, GitHub Release is published, SDK is published to npm, workers are deployedstagingis merged intoproduction— 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- 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 productionis back-merged intostaging— the HEAD is a release commit, so the version bump is skippedstagingis back-merged intodev— no release steps on dev
What Happens on Merge
The CD pipeline runs the following steps on merge to staging or production:
- Check if HEAD is a release commit (
chore(release): v*) — if yes, skip release steps - Bump version via
nx release(conventional commits determine major/minor/patch) - Push version commit and tag
- Create GitHub Release with changelog
- Publish SDK to npm (skipped if version already exists)
- Inject version into worker configs
- Deploy infrastructure
- 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@canaryCanary releases do not create git tags or GitHub Releases.