Skip to main content

Overview of CI/CD Pipeline

Overall Structure

The InfoLineage Platform operates two CI/CD pipelines according to its branch strategy.

Branch Strategy

branchpipelineRegistryDeployment Target
developJenkinsHarbor (scr.softcamp.co.kr)K8s dev namespace
masterAzure PipelineACR (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 IDharbor

ACR (Operation)

  • Address:security365acr.azurecr.io
  • Project:infolineage
  • Image:api, worker, frontend
  • Authentication: Azure Service ConnectionAzureContainerRegistry

Monorepo Path Trigger

Each Jenkins Job checks the paths of changed files and skips the build for unrelated changes.

JobBuild Trigger Path
APIbackend/infolineage-api/, backend/infolineage-common/
Workerbackend/infolineage-worker/, backend/infolineage-common/
Frontendfrontend/

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