피드로 돌아가기
Dev.toDevOps
원문 읽기
GitHub Actions와 Firebase Hosting을 통한 Flutter Web 자동 배포 파이프라인 구축
Deploying Flutter Web to Firebase Hosting with GitHub Actions CI/CD
AI 요약
Context
Flutter Web 앱의 빠른 프로덕션 배포를 위해 저비용 고효율 인프라 필요성 증대. Vercel의 복잡한 설정과 GitHub Pages의 수동 HTTPS 설정 한계를 극복하기 위한 최적의 호스팅 전략 모색.
Technical Solution
- Client-side Routing 지원을 위한 firebase.json 내 모든 경로의 index.html Rewrite 설정
- 빌드 시 생성되는 Hashed 파일의 효율적 관리를 위해 JS 및 WASM 파일에 1년 단위 Long-term Cache-Control 헤더 적용
- CanvasKit 렌더러 기반의 --release 빌드를 통한 웹 성능 최적화 및 정적 자산 생성
- Firebase Service Account와 GitHub Secrets 연동을 통한 보안 강화 및 CI/CD 자동화
- 배포 순서 보장 및 누락 방지를 위해 cancel-in-progress: false 설정으로 Concurrency 제어
- Ubuntu-latest 환경에서 Flutter Action을 활용한 빌드 캐싱으로 파이프라인 실행 속도 개선
실천 포인트
1. firebase.json에 SPA 전용 Rewrites 설정 확인
2. 빌드 결과물인 build/web 경로와 호스팅 Public 디렉토리 일치 여부 검토
3. GitHub Actions의 concurrency 설정을 통해 배포 큐 관리
4. 보안을 위해 Service Account JSON을 GitHub Secrets에 저장