GitHub Actions Overview
The MATIH platform uses GitHub Actions for both continuous integration (CI) and continuous deployment (CD). Workflow files are located in .github/work-flows/ and cover code quality, builds, testing, and deployment across multiple environments.
Workflow Files
| Workflow | File | Trigger | Purpose |
|---|---|---|---|
| CI Pipeline | ci.yml | Push, Pull Request | Lint, build, test |
| CD Pipeline | cd.yml | Push to main, tags, manual | Deploy to environments |
| Python CI | python-ci.yml | Push, Pull Request | Python-specific checks |
| Azure CI | azure-ci.yml | Push | Azure-specific integration tests |
| Azure CD | azure-cd.yml | Manual | Azure deployment workflow |
| GitOps CD | cd-gitops.yml | Push | ArgoCD sync trigger |
| Tenant Deploy | tenant-deploy.yml | Manual | Per-tenant deployment |
Sub-Pages
| Page | Description |
|---|---|
| CI Pipeline | Continuous integration workflow details |
| CD Deployment Workflow | Continuous deployment workflow details |
Concurrency Control
All workflows use GitHub Actions concurrency groups to prevent overlapping runs:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true # CI cancels previous runsCD workflows use cancel-in-progress: false to ensure deployments complete.
Shared Configuration
| Setting | Value |
|---|---|
| Java version | 21 (Temurin distribution) |
| Maven caching | Enabled via actions/setup-java@v4 |
| Container registry | ghcr.io/${{ github.repository_owner }} |
| Helm version | 3.13.0 |
| kubectl version | 1.28.0 |