Release
To start a new release:
flowchart TD
A["Checkout develop branch"] --> B["Ensure no uncommitted changes"]
B --> C["npm run start-release"]
C --> D{App or SDK?}
D -->|App| E["Increment appVersion<br/>in package.json"]
D -->|SDK| F["Increment version<br/>in src/sdk/package.sdk.json"]
E --> G["Generate changelog"]
F --> G
G --> H["Create release branch<br/>releases/v{version}"]
H --> I["Push to GitHub<br/>triggers preview deploy"]
I --> J["Create PR to develop"]
J --> K["PR merged"]
K --> L["GitHub Action workflow"]
L --> M["Build app/SDK"]
M --> N["Create & push release tag"]
N --> O["Compress build to zip/tar"]
O --> P["Create GitHub release<br/>with changelog"]
P --> Q{App or SDK?}
Q -->|App| R["Create permanent URL<br/>v{version}.livecodes.io"]
Q -->|SDK| S["Publish to npm"]
- Checkout the branch
develop. - Make sure there are no uncommitted changes.
- Run
npm run start-releaseand answer the prompts. This will:- Increment the version number:
App -> "./package.json" (appVersion)
SDK -> "./src/sdk/package.sdk.json" (version) - Generate changelog.
- Create a release branch (
releases/v{version}|releases/sdk-v{version}) and commit changes. - Push the branch to GitHub (which triggers a preview deploy).
- Create a pull request to
develop.
- Increment the version number:
- Once the pull request is merged a GitHub action workflow runs, which will:
- Build the app.
- Create and push a release tag:
App -> v{version}
SDK -> sdk-v{version} - Compress the build directory to zip and tar files.
- Create a release:
- Use changelog as release notes.
- Upload compressed files as release artifacts.
- Create a pull request to
main. - If App release -> create a permanent URL (v{version}.livecodes.io) which is a proxy to preview deploy.
- If SDK release -> publish to npm.
Note
App versions are numeric e.g. v20
SDK versions are semver e.g. v1.2.3