안녕하세요, Azure Pipeline 에서 CI/CD 파이프라인을 설계하다 보니 파이프라인을 시작하는 trigger
설정과 관련하여 질문하고자 합니다.
먼저, CI의 경우 pull request 또는 push 등 repository에서의 활동을 조건으로 파이프라인의 trigger
를 설정합니다.
그런데 CD의 경우 어떤 방식으로 trigger
를 설정해야 할지 잘 모르겠습니다.
어떤 분은 tag
를 활용하시는 분도 있고, branch
를 활용하시는 분도 있고, paths
를 활용하시는 분도 있는 것 같습니다.
일단 아래와 같이 저는 설정해서 사용했더니 release/*
branch를 main에 병합할 때마다 CI 파이프라인이 시작하는 문제가 있습니다.
trigger:
batch: true
branches:
include:
- main
exclude:
- pipeline/*
- release/*
pr: none
그리고 statging 과 produciton으로 구분하여 AKS에 배포하도록 2개의 CD 파이프라인을 만들어서 trigger
를 설정하고자 하는데 혹시 추천하는 방법이 있으실까요?
Build GitHub repositories - Azure Pipelines | Microsoft Docs
2022.04.06 12:00 업데이트
repository는 Github 에서 호스팅되고 있습니다. 그리고 회사 코드이기 때문에 public repository가 아닌 private repository 입니다.
2022.04.07 10:00 업데이트
일단 제가 구상하고 있는 시나리오는 다음과 같습니다.
-
기능을 개발한
feature/**
branch가main
branch에 병합되면, CI 파이프라인이 트리거되어 Container Image 를 빌드하여 Container Registry에 등록합니다. -
그 후, 개발자가 로컬 개발 환경이 아닌 통합 개발 환경에서 테스트하기로 결정하여
staging/**
branch 로 관련 내용을 수정하여main
branch에 병합하면, Staging CD 파이프라인이 트리거되어 개발자와 테스터만 접근 가능한 Kubernetes 에 배포합니다. -
테스터가 통합 개발 환경에서 동작 수행에 문제가 없음을 확인된 후,
release/**
branch 또는v1.*.*
tag 로 Release CD 파이프라인이 동작하여 고객이 접근 가능한 Kubernetes 에 배포합니다.
그런데 위 시나리오에서 문제가 staging/**
branch 가 main
branch 통합되면 CI 파이프라인도 같이 트리거가 되어 수행됩니다.
trigger:
batch: true
branches:
include:
- main
exclude:
- pipeline/*
- release/*
pr: none
그래서 Conditions - Azure Pipelines | Microsoft Docs로 해결해보려고 하는데, 어떻게 해야 할지 갈피를 못 잡고 있습니다.
그리고 Release CD 파이프라인을 수동으로 돌릴 경우, git repository에 히스토리가 남지 않아 branch
또는 tag
로 해결하는 전략이 적합할지 Best Practices 는 무엇일지 고견을 구하고자 합니다.