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

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

全体構造

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

ブランチ戦略

ブランチパイプラインレジストリ配布対象
developJenkinsHarbor (scr.softcamp.co.kr)K8s dev namespace
masterAzure PipelineACR (security365acr.azurecr.io)Staging / Prod (手動)

レジストリ戦略

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

モノレポ Path Trigger

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

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

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

環境別デプロイフロー

⏳ Staging 自動デプロイおよび Production 手動承認は今後実装予定です。

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