Skip to content

Release Pipeline

The release pipeline (cicd/release.yaml) is the main build-and-deploy pipeline. It builds Docker images, runs Terraform plans, and deploys applications to Azure Container Apps.

Triggers

The pipeline triggers automatically on:

  • Branches: main, release*
  • Tags: web*

PR triggers are disabled (pr: none). Pull requests use the separate PR pipeline.

Batching is enabled -- multiple commits pushed in quick succession are grouped into a single run.

Parameters

ParameterTypeDefaultDescription
skipCodeAnalysisbooleanfalseSkip the code analysis stage
forceApibooleanfalseForce API build (skip change detection)
forceWebbooleanfalseForce Web build
forceSanitybooleanfalseForce Sanity build
forceMatchGatewaybooleanfalseForce Match Gateway build
forceApiGatewaybooleanfalseForce API Gateway build
forceGraphqlRouterbooleanfalseForce GraphQL Router build
updateTurboRepoRemoteCacheImagebooleanfalseRebuild and push the TurboRepo remote cache image
updateBaseNodeImagebooleanfalseRebuild and push the shared base Node image to ACR
forceEnvstringautoOverride environment detection (auto, tst, acc, prd)

Environment Selection

When forceEnv is set to auto (the default), the target environment is determined by the source branch or tag:

SourceEnvironment
Tag containing -rcacc
release* branchacc
Tag without -rcprd
main branchtst

Stage Flow

Each app gets its own build, plan, and deploy stage. Stages run in parallel where dependencies allow.

Release Branch Behavior

On release* branches, the pipeline runs in build-only mode:

  • pushContainerToRegistry: false -- images are built to verify correctness but not pushed to ACR
  • skipPlanRelease: true -- Terraform plan is skipped
  • skipDeploy: true -- deployment is skipped

This allows verifying that cherry-picked commits produce valid builds without triggering a deployment.

Change Detection (TURBO_SCM_BASE)

The TURBO_SCM_BASE variable controls how far back Turbo looks for changes:

SourceTURBO_SCM_BASERationale
TagsHEAD~5Detect changes across recent commits
release* branchesHEAD~1Only the latest cherry-pick
mainHEAD~1Changes from the merged PR

Code Analysis on Release

The release pipeline runs code analysis with all checks disabled by default (runTypeCheck: false, runLinting: false, etc.). Full analysis has already been performed by the PR pipeline.

Code analysis is skipped entirely on tags and release branches.