Overview of CI/CD Pipeline
Overall Structure
The InfoLineage Platform operates two CI/CD pipelines according to its branch strategy.
Branch Strategy
| branch | pipeline | Registry | Deployment Target |
|---|---|---|---|
develop | Jenkins | Harbor (scr.softcamp.co.kr) | K8s dev namespace |
master | Azure Pipeline | ACR (security365acr.azurecr.io) | Staging / Prod (Manual) |
Registry Strategy
Harbor (Development)
- Address:
scr.softcamp.co.kr - Project:
infolineage - Image:
platform-api,platform-worker,platform-frontend - Authentication: Jenkins Credential ID
harbor
ACR (Operation)
- Address:
security365acr.azurecr.io - Project:
infolineage - Image:
api,worker,frontend - Authentication: Azure Service Connection
AzureContainerRegistry
Monorepo Path Trigger
Each Jenkins Job checks the paths of changed files and skips the build for unrelated changes.
| Job | Build Trigger Path |
|---|---|
| API | backend/infolineage-api/, backend/infolineage-common/ |
| Worker | backend/infolineage-worker/, backend/infolineage-common/ |
| Frontend | frontend/ |
SKIP_BUILD=trueSkip the Gradle Build / Docker Build steps, and the K8s Deploy step always runs.
Deployment Flow by Environment
⏳ Automatic deployment to Staging and manual approval for Production will be implemented in the future.
Location of Jenkinsfile
infra/jenkins/
├── Jenkinsfile.api # API 서비스 파이프라인
├── Jenkinsfile.worker # Worker 서비스 파이프라인
└── Jenkinsfile.frontend # Frontend 파이프라인
Azure Pipeline Location
infra/azure-pipelines/
├── pipelines/
│ ├── api-pipeline.yml
│ ├── worker-pipeline.yml
│ └── frontend-pipeline.yml
└── templates/
├── build-java.yml
├── sonar-scan.yml
└── docker-push.yml