CI/CD
Overview
Section titled “Overview”Formation uses GitHub Actions for CI/CD. Each service has two workflows:
- Validate — Runs on pull requests to verify builds, tests, and linting
- Deploy — Runs on pushes to
mainto build, push, and deploy containers
Pipeline Architecture
Section titled “Pipeline Architecture”graph LR PR[Pull Request] --> VALIDATE[Validate Workflow] VALIDATE --> BUILD[Build & Test] BUILD --> LINT[Lint & Type Check]
MAIN[Push to main] --> DEPLOY[Deploy Workflow] DEPLOY --> VERSION[Semantic Version] VERSION --> DOCKER[Build Docker Image] DOCKER --> ACR[Push to ACR] ACR --> ACA[Deploy to Container Apps]Path-Based Triggers
Section titled “Path-Based Triggers”Each workflow only triggers when files in its service directory change:
on: push: branches: [main] paths: - src/services/web/** - .github/workflows/web-service-deploy.ymlVersioning
Section titled “Versioning”Semantic versioning is applied automatically using semantic-version action:
- name: Version bump uses: paulhatch/semantic-version@v6.0.2 with: change_path: ./src/services/web namespace: web bump_each_commit: trueGenerated Documentation Publishing
Section titled “Generated Documentation Publishing”CI pipelines publish auto-generated documentation assets to Azure Blob Storage. The docs site then serves these via a proxy route.
Storybook
Section titled “Storybook”Built during the web service pipeline and uploaded to generated-docs/storybook/.
Test Coverage
Section titled “Test Coverage”Generated during test runs and uploaded to generated-docs/coverage/.
dbt Docs
Section titled “dbt Docs”Generated during data pipeline runs and uploaded to generated-docs/dbt/.
Database Schema (dbdocs)
Section titled “Database Schema (dbdocs)”Generated from the SQL project and uploaded to generated-docs/dbdocs/.