Pipeline 은 Git 이벤트에 반응해
모든 CI/CD 시스템은, marketing 밑에서 보면, Git event listener 야. Push, tag, pull request — 이게 workflow 를 시작시키는 trigger 야. Git 을 잘 이해하면 CI/CD 의 절반을 이미 이해한 거야.
GitHub 에서 중요한 event 들:
- push — 어떤 branch 든, 특정 branch 만 필터링 가능.
- pull_request — opened, synchronized (새 commit push), reopened, ready_for_review.
- tag push — 보통 release pipeline 용 (
v1.2.3tag 를 push → release workflow trigger). - schedule — cron 같은 거, nightly build / dependency scan 용.
- workflow_dispatch — UI 나 API 에서 수동 trigger.
- repository_dispatch — 외부 시스템이 repo 를 ping.
Branching 전략과 CI 모양
흔한 두 branching 전략이 CI 에 매우 다른 영향을 줘:
- Trunk-based — short-lived feature branch, 매일 merge. CI 가 모든 PR 과 main push 마다 돔. 매끄럽고 빠르지만 discipline 필요.
- Git Flow — long-lived develop, release, hotfix branch. CI 더 복잡 (branch 클래스 별 다른 gate). 느리고 ceremony 많고, 느린 release cadence 에 유용 (규제 산업, packaged software).
전략을 먼저 골라; CI 구조는 그 다음에 따라와.