MATIH Platform is in active MVP development. Documentation reflects current implementation status.
18. CI/CD & Build System
CI Pipeline

CI Pipeline

The CI pipeline runs on every push and pull request to validate code quality, build all components, and run tests. It uses parallel jobs for independent build steps and caching for faster execution.

Source file: .github/work-flows/ci.yml


Triggers

EventBranchesConditions
Pushmain, develop, feature/**, release/**Paths except docs/** and *.md
Pull Requestmain, developOpened, synchronized, reopened

Jobs

1. Lint and Static Analysis

jobs:
  lint:
    name: Lint & Static Analysis
    runs-on: ubuntu-latest
CheckToolScope
CheckstyleMaven checkstyle pluginAll Java services in control-plane/
SpotBugsMaven spotbugs pluginAll Java services (non-blocking)

2. Build Commons

Builds shared Java libraries in commons/commons-java/:

jobs:
  build-commons:
    name: Build Commons
    runs-on: ubuntu-latest

Installs commons to the local Maven repository for downstream service builds.

3. Build Control Plane Services

Builds all Java Spring Boot services in control-plane/:

ServiceBuild
config-serviceMaven package
iam-serviceMaven package
tenant-serviceMaven package
notification-serviceMaven package
audit-serviceMaven package
billing-serviceMaven package
api-gatewayMaven package

4. Build Data Plane Services

Builds data plane Java and Python services:

ServiceBuild Tool
query-engineMaven
pipeline-serviceMaven
ai-servicepip install + pytest
ml-servicepip install + pytest
data-quality-servicepip install + pytest

5. Build Frontend

Builds React/Vite frontend applications:

ApplicationBuild
bi-workbenchnpm ci + npm run build
ml-workbenchnpm ci + npm run build
control-plane-uinpm ci + npm run build

Environment Variables

env:
  JAVA_VERSION: '21'
  REGISTRY: ghcr.io/${{ github.repository_owner }}
  MAVEN_OPTS: '-Xmx2048m -XX:+UseG1GC'

Caching Strategy

CacheKeyScope
Mavensetup-java cache optionPer-commit hash
npmnode_modulesPer package-lock.json hash
pip~/.cache/pipPer requirements.txt hash

Related Pages