CI/CD
The platform uses Azure DevOps Pipelines for continuous integration and deployment. There are two main pipelines: the release pipeline for building and deploying to environments, and the PR pipeline for code quality validation.
All pipeline definitions live in the cicd/ directory at the repository root.
Pipeline Overview
What's Here
Release Pipeline
Triggers, parameters, environment selection, and stage ordering for the main build-and-deploy pipeline.
PR Pipeline
Code quality checks that run on every pull request: type checking, linting, unit tests, SonarQube, and Terraform validation.
Stages
Detailed reference for each pipeline stage: prepare, code_analysis, build, plan_release, and deploy.
Docker Builds
Docker build strategy, multi-stage Dockerfiles, BuildKit caching, Turbo remote cache integration, and CDN asset extraction.
Deployment
Terraform plan/apply flow, Azure Container Apps deployment, deployment verification, CDN asset uploads, and Storybook.
Environments
Environment configuration files, variable groups, service connections, and naming conventions.
Directory Structure
cicd/
├── release.yaml # Release pipeline definition
├── pr.yaml # PR pipeline definition
├── templates/
│ ├── stages/ # Stage templates (prepare, build, deploy, etc.)
│ ├── jobs/ # Job templates per app (build-web, build-api, etc.)
│ └── steps/ # Reusable step templates (build-container, deploy, etc.)
├── vars/ # Environment-specific variables (tst, acc, prd)
└── scripts/ # Shell/PowerShell scripts used by pipeline tasks