CI/CD 파이프라인 구성과 관련하여 나름 좋은 해결책을 찾았습니다.
핵심은 Trigger 조건을 어떻게 설정하느냐가 아닌 브랜치 전략을 어떻게 가져가느냐였습니다.
아래와 그림과 같이 Gitflow를 CI/CD 관점에서 보니, release branch 와 main branch에 commit이 push될 때마다 CD 파이프라인이 동작하도록 했습니다.
GitHub의 pull request 기능을 통해 CD 파이프라인이 trigger 되기 전에 리뷰를 할 수 있어, release branch가 main branch에 병합되기 전 테스터가 pull request 기능으로 production으로 배포해도 되는지를 검토하고 허가할 수 있는 권한을 줄 수 있게 되었습니다.
요약하면 release branch에 새로운 commit 이 생기면 staging으로 배포하는 CD 파이프라인을 trigger 하고, main branch에 새로운 commit이 생기면 production으로 배포하는 CD 파이프라인을 trigger합니다.
CI 파이프라인은 feature branch 와 develop branch에 pull request가 생기거나 업데이트될 때 trigger 되도록 했습니다. 이제 main branch에서 CI 파이프라인이 trigger 되지 않아 질문과 같은 문제가 발생하지 않게 되었습니다.