Deploy Firebase Functions — PR, test, deploy, tag, release 반자동 CD 파이프라인
Firebase Functions 배포 파이프라인. develop → master PR 생성부터 GitHub Release까지 순차 실행한다.
<version> (필수): 태그 버전 (예: v0.9.0)버전 인자가 없으면 실행을 중단하고 사용법을 안내한다.
<version> 인자가 반드시 있어야 한다. 없으면 중단: Usage: /deploy <version> (예: /deploy v0.9.0)v로 시작하는지 확인. 아니면 v를 붙여준다 (예: 0.9.0 → v0.9.0)git tag -l <version>
이미 존재하면 중단하고 알린다.mcp__github__create_pull_request 사용:
sudoparkTodoCalendar-FunctionsRelease <version>developmasterRelease <version> — develop → master"PR을 확인하고 머지를 진행할까요?"
mcp__github__merge_pull_request 사용:
sudoparkTodoCalendar-Functionsmergegit checkout master && git pull origin master
cd functions && npm test
에뮬레이터 상태를 먼저 확인한다:
lsof -i :5001 -sTCP:LISTEN
포트 5001이 사용 중: cd functions && npm run test:e2e
포트 5001이 미사용: cd functions && npm run test:e2e:run
실패 시 즉시 중단. 실패 내용을 사용자에게 보고한다.
성공 시 통과 테스트 수를 보고한다.
firebase deploy --only functions
git tag <version>
git push origin <version>
이전 태그를 확인한다:
git tag --sort=-v:refname | head -2
(두 번째 항목이 이전 태그)
이전 태그와 현재 태그 사이의 커밋 로그를 가져온다:
git log <prev_tag>..<version> --oneline
mcp__github__create_release 또는 GitHub API로 릴리즈 생성:
<version><version>최종 결과를 요약한다:
배포 완료
- PR: #<number> merged
- Tests: <unit_count> unit + <e2e_count> E2E passing
- Deploy: Firebase Functions deployed
- Tag: <version> pushed
- Release: <release_url>
firebase login)git checkout develop 필요