Skip to content

CI/CD Flow

Visual reference for the full CI/CD pipeline — from Git push through security scanning, container build, image push to ACR, and Container App deployment across all five environments.


End-to-End Pipeline Flow (Backend)


Branch to Environment Mapping

Approval gates:

TargetApproval requiredApprovers
productionYesRelease Manager role in Azure DevOps
preprodNoAuto
stageNoAuto
uatNoAuto
devNoAuto

Frontend CI/CD Flow

Nx Affected — Only Rebuild What Changed

The nx affected command analyses the dependency graph and only rebuilds apps whose source code (or library dependencies) changed since the base branch. A commit touching only apps-accounting will not rebuild apps-hr.


Mobile CI/CD Flow (GitHub Actions)


Security Pipeline Stages Detail

The security pipeline runs on every PR and every merge. All 16 stages must pass for an artifact to reach any environment.

#StageToolBlockingTypical duration
1Secret scanGitleaksYes~30 s
2SAST + quality gateSonarCloudYes~3 min
3NuGet CVEsOWASP Dependency-CheckYes~2 min
4Dependency SCATrivy (deps)Yes~1 min
5IaC scanTrivy (IaC)Yes~30 s
6Dockerfile lintHadolintYes~10 s
7Build + unit testsdotnet build + testYes~5 min
8Container builddocker buildYes~4 min
9Image CVE scanTrivy (image)Yes~2 min
10SBOM generationSyft / CycloneDXNo~30 s
11Integration testsNewman / REST AssuredYes~5 min
12AI code reviewAzure OpenAI GPT-4oNo~2 min
13DASTOWASP ZAPYes~10 min
14Security reportHTML/PDF generatorNo~30 s
15NotificationTeams webhookNo~5 s
16ArchiveAzure Blob StorageNo~20 s

Total pipeline duration: ~35–40 minutes (parallel stages reduce wall-clock time)


Deployment Strategy: Zero-Downtime Revisions

Container Apps use revision-based deployments for zero-downtime updates.

Rollback: If health probe fails on the new revision, ACA automatically keeps routing to the previous revision. The pipeline also runs az containerapp revision deactivate on the failed revision.


Fast Deploy Path

The fast-deployment.yml pipeline bypasses the full 16-stage security scan and directly deploys a pre-built image to a specified environment. It is never triggered automatically.

Fast Deploy — Use with Caution

The fast deploy path skips all security scans. It is intended only for emergency hotfixes where a pre-validated image must be pushed immediately. Every fast deploy must be followed by a full pipeline run within 24 hours.


Pipeline File Locations

Devops/azure/
├── pipelines/
│   ├── containerBackend/
│   │   └── deploy/
│   │       ├── container-deployment.yml       # Main backend pipeline
│   │       └── fast-deployment.yml            # Fast deploy (manual only)
│   └── frontApps/
│       └── deploy/
│           └── unified-frontend-pipeline.yml  # All Angular apps
├── templates/
│   ├── containerBackend/
│   │   ├── build/build-docker.yml
│   │   ├── deploy/deploy-container.yml
│   │   └── security/security-pipeline-template.yml
│   └── frontApps/
│       └── build/build-angular.yml
└── config/
    └── container-backend/
        └── services-config.json               # Master service config (13 services)

Internal Documentation — Microtec Platform Team