Last updated May 15, 2022

Editor Release Workflow

We're trying to imitate trunk-based development. It is pretty simple for our use case with a small caveat: We do not have a release branch as of the moment, but we are starting to tag our releases and manually deploying them to production.

Releasing after sprint cycle

Here is the exact step by steps to release main branch. Please note that the current setup in Vercel no longer automatically deploys to production

Yarn configuration

Here's my yarn config, you need to set version-git-tag to false

First, versioning

You need to update the version on the main branch and then create a new release branch (for hotfixes later).

Instructions:

  1. First, checkout to main branch
  2. yarn version --minor → or --patch depending if you're doing a hotfix or cycle release
  3. git checkout -b releases/<new-version>
  4. git push releases/<new-version>
  5. git push <new-version> → push the tag.

You should see an active preview deployment in Vercel for release/<new-version>

Second, production deployment

Easy, just promote to production the release branch you created.

Finally, create a release in github

Go to the repo's releases (usually just append /releases to the repository root URL). then click the draft a new release. Then you should see this page:

Press "Auto-generate release notes". This will create a pretty standardized release structure.

Hotfixes

Instructions

  1. Fix the bug on the main branch
  2. PR against main branch
  3. Cherry-pick into the latest release tag
  4. Create new release branch release/<new-patch-version>
  5. Select deployment in Vercel

Renderer's Workflow

MacOS

  1. Build the image using docker buildx build --platform linux/amd64 -t registry.digitalocean.com/typedream/<staging-or-prod>:<version> -f <staging-or-prod>.Dockerfile .
  2. then push the image using docker push <image>:<version>

Linux

  1. skaffold build -p [stg/prod]