メインコンテンツまでスキップ

CI/CDパイプラインの概要

全体構造

InfoLineage Platformはブランチ戦略に従って2つのCI/CDパイプラインを運営しています。

ブランチ戦略

ブランチパイプラインレジストリ配布対象
developJenkinsHarbor (scr.softcamp.co.kr)K8s dev namespace
masterAzure PipelineACR (security365acr.azurecr.io)ステージング / プロダクション (手動)

レジストリ戦略

Harbor (開発)

  • 住所:scr.softcamp.co.kr
  • プロジェクト:infolineage
  • 画像:platform-api, platform-worker, platform-frontend
  • 認証: Jenkins Credential IDharbor

ACR (運用)

  • 住所:security365acr.azurecr.io
  • プロジェクト:infolineage
  • 画像:api, worker, frontend
  • 認証: Azure Service ConnectionAzureContainerRegistry

モノレポ パス トリガー

各Jenkins Jobは変更されたファイルのパスを確認し、関連のない変更があった場合はビルドをスキップします。

Jobビルドトリガーパス
APIbackend/infolineage-api/, backend/infolineage-common/
Workerbackend/infolineage-worker/, backend/infolineage-common/
Frontendfrontend/

SKIP_BUILD=trueGradle Build / Docker Build ステップをスキップし、K8s Deploy ステップは常に実行されます。

環境別デプロイフロー

⏳ ステージングの自動デプロイとプロダクションの手動承認は今後実装予定です。

Jenkinsfileの位置

infra/jenkins/
├── Jenkinsfile.api # API 서비스 파이프라인
├── Jenkinsfile.worker # Worker 서비스 파이프라인
└── Jenkinsfile.frontend # Frontend 파이프라인

Azure Pipeline の位置

infra/azure-pipelines/
├── pipelines/
│ ├── api-pipeline.yml
│ ├── worker-pipeline.yml
│ └── frontend-pipeline.yml
└── templates/
├── build-java.yml
├── sonar-scan.yml
└── docker-push.yml