Git 태그에서 배포 트리거
출처: Pulumi Blog
git 태그는 많은 팀이 릴리스를 준비된 상태로 표시하는 방법입니다. Pulumi Deployments는 이제 그 신호에 직접 반응할 수 있습니다: 태그 기반 트리거를 설정하고 v1.2.0 같은 버전 태그를 푸시하면 Pulumi가 자동으로 스택에 대해 pulumi up을 실행합니다. 별도의 파이프라인 연결이나 수동 클릭이 필요 없습니다 — 릴리스 태그가 바로 배포가 됩니다.
Why tags?
Push to Deploy는 오래전부터 풀 리퀘스트에서 변경 사항을 미리 보고, 커밋이 브랜치에 병합될 때 스택을 업데이트하도록 해왔습니다. 브랜치 기반 모델은 모든 병합이 바로 흐르는 공유 개발 및 QA 환경에 대한 지속적인 전달에 매우 적합합니다.
하지만 프로덕션으로의 승격은 종종 연속적이라기보다 의도적인 작업입니다. 하루 종일 병합을 진행한 뒤, 별도로 특정 커밋이 릴리스라는 결정을 내리게 됩니다. 이를 기록하는 전통적인 방법이 바로 git 태그입니다: v1.2.0, 2026.06.0, release-2026-06-04 등. 태깅은 대부분의 팀이 릴리스 의식의 일부로 이미 사용하고 있습니다.
태그 기반 트리거는 이러한 의식을 인프라와 연결합니다. 태그 이벤트가 발생했을 때 Pulumi Deployments REST API를 호출하도록 별도의 CI 작업을 구성하는 대신, 스택 배포 설정에서 한 번 트리거를 설정하면 나머지는 Pulumi가 처리합니다.
How it works
태그 트리거는 스택 배포 구성의 두 가지 설정으로 제어됩니다:
- Run updates for pushed tags — 일치하는 태그가 푸시될 때
pulumi up을 실행하도록 하는 토글. - Tag filters — 어떤 태그 이름이 적용 대상이 되는지 결정하는 glob 패턴 목록.
태그 필터는 이미 익숙할 수 있는 경로 필터와 동일한 모델을 사용하지만, 패턴이 파일 경로가 아니라 태그 이름에 매치됩니다. 몇 가지 예시:
v*—v1.0.0,v2.3.1처럼v로 시작하는 모든 태그에 배포.v*plus!*-rc*— 릴리스 태그에는 배포하지만v1.2.0-rc1같은 릴리스 후보는 건너뜀.2026.*—2026.06.0과 같은 캘린더 버전 릴리스에 배포.
! 로 시작하는 필터는 제외를 의미하며, 제외 규칙은 항상 포함 규칙보다 우선합니다. 필터를 설정하지 않고 토글만 켜두면 모든 태그 푸시가 배포를 트리거합니다. 태그를 삭제해도 배포는 발생하지 않습니다.
태그 푸시가 배포를 시작하면 Pulumi는 PULUMI_CI_TAG_NAME 환경 변수를 태그 이름으로 설정합니다. 사전 실행 명령이나 Pulumi 프로그램에서 이 값을 읽어 리소스 태그나 애플리케이션 설정 값에 릴리스 버전을 찍어 넣을 수 있습니다.
Works across every VCS integration
태그 트리거는 다섯 가지 버전 관리 시스템 통합 모두에서 사용할 수 있습니다: GitHub, GitLab, Bitbucket, Azure DevOps, 그리고 Custom VCS.
Get started
태그 트리거는 현재 배포 설정을 관리하는 어디서든 구성할 수 있습니다 — Pulumi Cloud 콘솔, REST API, 혹은 pulumiservice.DeploymentSettings 리소스로 코드화해서 말이죠.
시도해 보려면:
- Pulumi Cloud 콘솔에서 스택의 Settings > Deploy 탭을 엽니다.
- Run updates for pushed tags 를 활성화하고
v*같은 태그 필터를 추가합니다. - 태그를 푸시합니다 —
git tag v1.0.0 && git push origin v1.0.0— 그리고 배포가 실행되는 것을 확인합니다.
전체 세부 사항은 deployment triggers 및 tag filtering 문서를 참고하세요. 태그 기반 배포를 어떻게 활용했는지 알려주시면 감사하겠습니다.