자동 출시를 사용 설정한 경우 GitHub 저장소의 라이브 브랜치에 새 커밋을 푸시할 때마다 App Hosting에서 앱의 새 버전을 자동으로 출시합니다. Firebase 콘솔 또는 App Hosting GitHub 확인에서 출시 상태를 확인할 수 있습니다.
또한 App Hosting는 CI/CD 통합 또는 출시를 강제하려는 기타 사례를 위해 수동으로 트리거된 출시를 지원합니다.
출시 보기
Firebase 콘솔을 통해 앱의 모든 출시에 관한 세부정보에 액세스할 수 있습니다.
호스팅 및 서버리스 > 앱 호스팅으로 이동한 다음 출시를 확인할 백엔드의 보기를 선택합니다. 백엔드의 출시 탭에는 이 백엔드의 모든 출시 내역을 나열하는 표가 표시됩니다.
각 출시 항목에는 Cloud Build 작업과 출시를 트리거한 변경사항 또는 커밋 링크가 포함되며, 출시의 작성자, 생성 날짜, 상태에 관한 기본 정보도 포함됩니다.
- Cloud Build 작업은 App Hosting가 앱의 빌드 명령어를 실행하는 빌드 환경입니다. 빌드 ID를 클릭하여 Cloud Build 로그에 액세스할 수 있습니다.
- 변경사항은 출시를 트리거한 GitHub 커밋 또는 기타 액션입니다.
수동으로 출시 트리거
새 커밋을 푸시하지 않고 GitHub 소스에서 출시를 수동으로 트리거하려면 Firebase 콘솔 또는 Firebase CLI에서 출시를 만들면 됩니다. 이는 다음과 같은 경우에 유용합니다.
- 정적 콘텐츠의 재생성을 강제합니다.
- CI/CD 시스템에서 출시를 트리거하도록 허용
- 프로덕션 출시를 특정 날짜 또는 시간으로 제한
Firebase 콘솔에서 롤아웃을 트리거하려면 다음 단계를 따르세요.
- Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
- 출시를 만들 백엔드의 보기를 클릭합니다.
- 백엔드 대시보드 요약에서 출시 만들기를 선택합니다.
- 배포할 브랜치를 선택합니다.
- 배포할 커밋을 선택합니다. 최신 커밋 또는 커밋 ID로 지정된 이전 커밋을 선택할 수 있습니다.
- 만들기를 선택합니다. 출시 상태와 빌드 번호가 출시 기록 표에 표시됩니다. 출시 프로세스가 완료되면 이 출시가 현재 출시로 표시됩니다.
Firebase CLI에서 출시를 트리거하려면 다음 명령어를 실행하고 메시지가 표시되면 출시할 브랜치를 선택합니다.
firebase apphosting:rollouts:create BACKEND_ID
또는 --git-branch 옵션을 사용하여 특정 브랜치의 최신 커밋에 대한 출시를 시작할 수 있습니다.
firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME
--git-commit 옵션을 사용하여 특정 커밋으로 출시를 만들 수도 있습니다.
firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID
이전 출시 복원
App Hosting에서는 이전 출시를 복원하는 두 가지 옵션을 제공합니다.
- 다시 빌드하지 않고 즉시 롤백
- 이전 버전으로 다시 빌드하고 롤백
즉시 롤백 만들기
새로 배포된 버전에 심각한 버그가 발견되었거나 새 출시를 차단하는 불안정한 빌드가 발생하는 경우와 같이 앱의 이전 버전으로 빠르게 되돌려야 할 때가 있습니다. 이러한 경우 이전 출시에서 원하는 기존 컨테이너 이미지를 복원할 수 있습니다. 이 이미지는 다시 빌드되지 않으며 처음 빌드될 때의 코드와 환경 구성을 사용합니다.
즉시 롤백을 만들려면 다음 단계를 따르세요.
- Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
- 롤백을 만들 백엔드의 보기를 클릭합니다.
- 출시 탭을 선택합니다.
- 백엔드의 기록 표에서 이전 빌드의 점 3개로 된 메뉴를 선택합니다.
- 이 빌드로 롤백을 선택하고 확인합니다.
다시 빌드 및 롤백
이전 버전의 앱으로 되돌리되 현재 구성을 유지하려면 롤백 프로세스의 일부로 앱을 다시 빌드하면 됩니다. 예를 들어 최신 버전에서 Secret Manager의 API 키 값을 업데이트한 경우 롤백 후 앱에서 새 키가 사용되도록 리빌드할 수 있습니다.
다시 빌드하고 롤백하려면 다음 단계를 따르세요.
- Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
- 롤백을 만들 백엔드의 대시보드 보기를 클릭합니다.
- 출시 탭을 선택합니다.
- 출시 만들기를 선택합니다.
- 출시 만들기 대화상자에서 이전 커밋을 선택한 다음 다시 빌드하고 롤백할 버전의 커밋 ID를 입력합니다. 커밋 ID는 라벨의 괄호 안에 포함된 출시 내역에 나열된 각 출시의 '변경사항 세부정보'에 포함됩니다.
- 만들기를 선택하여 롤백을 시작합니다.
출시 설정 변경
백엔드의 대시보드에서 설정 > 배포 뷰의 컨트롤을 사용하여 출시의 라이브 브랜치를 변경하고 자동 출시를 사용 중지하거나 사용 설정할 수 있습니다.
- Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
- 출시 설정을 업데이트할 백엔드의 보기를 클릭합니다.
- 백엔드 대시보드에서 설정을 선택합니다. 기본 뷰에는 도메인 및 커스텀 도메인에 관한 정보가 표시됩니다.
- 배포 뷰를 선택합니다. 이 뷰에서 출시의 라이브 브랜치를 변경하고 자동 출시를 사용 중지하거나 사용 설정할 수 있습니다. 또한 앱 루트 디렉터리와 백엔드 환경을 설정하는 옵션도 있습니다 (여러 환경에 배포 참고).
자동 출시 관리
기본적으로 App Hosting는 모든 파일의 '필수' 목록을 가정합니다. 즉, 저장소에 대한 모든 새 커밋은 새 빌드와 출시를 트리거합니다. 하지만 시간을 절약하고 불필요한 배포를 방지하기 위해 커밋에서 수정된 특정 파일 경로를 기반으로 빌드를 건너뛰도록 App Hosting를 구성할 수 있습니다.
이 설정은 설정 > 출시 > 출시 트리거에서 구성할 수 있습니다. 여기에서 저장소에 대한 모든 새 커밋이 새 빌드 및 출시를 트리거하도록 하려면 필수 경로를 비워 두거나 항상 출시를 트리거해야 하는 디렉터리 또는 파일을 정확하게 지정할 수 있습니다. 디렉터리를 지정하는 경우 변경사항이 출시를 트리거해야 하는 모든 경로를 추가해야 합니다.
무시된 경로에 추가한 디렉터리 또는 파일은 자동 출시를 트리거하지 않습니다. 하위 디렉터리가 필수 목록과 무시된 목록에 모두 포함되는 경우 자동 출시가 트리거되지 않습니다. 무시된 경로 목록만 입력하면 App Hosting에서 필수 경로에 '*'를 자동으로 입력합니다.
변경된 파일 중 필요한 경로와 일치하는 파일이 없는 커밋을 푸시하거나 무시된 경로로 인해 모든 변경사항이 명시적으로 제외된 경우 App Hosting은 GitHub 이벤트 수신을 확인하지만 빌드 및 출시 상태를 SKIPPED로 표시하며 자동 출시는 트리거되지 않습니다.