Skip to content

Release Workflow

The following flowchart and release workflow is perhaps opinionated. However, it is primarily to demonstrate how tc can be used at every stage in the development and release workflow, regardless of the CI/CD system that you may use.

Stage1 image

Stage2 image

  1. PR Merge

    Terminal window
    tc tag --next patch
  2. Release to QA (bump Minor)

    Terminal window
    tc tag --next minor

    Release step is optional.

  3. Freeze

    Terminal window
    tc freeze -s stable -e qa

    Freeze is a software-enforced freeze. Test! Test! Test! after freeze.

  4. Snapshot

    Terminal window
    tc snapshot -s stable -e qa --save

    This saves the snapshot of manifests, changelog and topology definitions to s3.

  5. Unfreeze

    Terminal window
    tc unfreeze -s stable -e qa

    This allows Continuous deploys to continue.

  6. Promote

    To promote a snapshot, we first go back and pick the one that has been certified and tested in QA. For example:

    Terminal window
    tc snapshot --list
    qa/stable/2025-10-02
    qa/stable/2025-10-01
    qa/stable/2025-09-30
    qa/stable/2025-09-29
    qa/stable/2025-09-18

    To deploy a snapshot (say qa/stable/2025-10-02), we do:

    Terminal window
    tc ci-deploy --env prod --sandbox stable --snapshot qa/stable/2025-10-02

    Behind the scenes, ci-deploy triggers a pipeline using the snapshot:

    Terminal window
    tc snapshot --show qa/stable/2025-10-02 -f pipeline --target-env dev --target-sandbox stable