출시 및 버전 관리

자동 출시를 사용 설정한 경우 GitHub 저장소의 라이브 브랜치에 새 커밋을 푸시할 때마다 App Hosting에서 새 버전의 앱을 자동으로 출시합니다. Firebase Console 또는 App Hosting GitHub 검사에서 출시 상태를 확인할 수 있습니다.

또한 App Hosting는 CI/CD 통합 또는 출시를 강제 적용하려는 다른 사례에 대해 수동으로 트리거되는 출시를 지원합니다.

출시 보기

Firebase 콘솔을 사용하면 앱의 모든 출시에 관한 세부정보에 액세스할 수 있습니다.

호스팅 및 서버리스 > App Hosting으로 이동한 후 출시를 확인할 백엔드의 보기를 선택합니다. 백엔드의 출시 탭에는 이 백엔드의 모든 출시 내역이 나열된 표가 표시됩니다.

각 출시 항목에는 Cloud Build 작업 및 출시를 트리거한 변경 또는 커밋에 대한 링크와 함께 작성자, 생성 날짜, 출시 상태에 대한 기본 정보가 포함됩니다.

  • Cloud Build 작업은 App Hosting가 앱의 빌드 명령어를 실행하는 빌드 환경입니다. 빌드 ID를 클릭하여 Cloud Build 로그에 액세스할 수 있습니다.
  • 변경은 출시를 트리거한 GitHub 커밋 또는 기타 작업입니다.

수동으로 출시 트리거

새 커밋을 푸시하지 않고 GitHub 소스에서 출시를 수동으로 트리거하려면 Firebase 콘솔 또는 Firebase CLI에서 출시를 만들면 됩니다. 이는 다음과 같은 경우에 유용합니다.

  • 정적 콘텐츠 재생성 강제 적용
  • CI/CD 시스템에서 출시를 트리거하도록 허용합니다.
  • 프로덕션 출시를 특정 날짜 또는 시간으로 제한

Firebase 콘솔에서 출시를 트리거하려면 다음 안내를 따르세요.

  1. Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
  2. 출시를 만들려는 백엔드의 보기를 클릭합니다.
  3. 백엔드 대시보드 요약에서 출시 만들기를 선택합니다.
  4. 배포할 브랜치를 선택합니다.
  5. 배포할 커밋을 선택합니다. 최신 커밋 또는 커밋 ID로 지정된 이전 커밋을 선택할 수 있습니다.
  6. 만들기를 선택합니다. 출시 상태 및 빌드 번호는 출시 기록 표에 표시됩니다. 출시 프로세스가 완료되면 이 출시가 현재 출시로 표시됩니다.

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에서는 이전 출시를 복원하는 두 가지 옵션을 제공합니다.

  • 다시 빌드하지 않고 즉시 롤백
  • 다시 빌드하고 이전 버전으로 롤백

빠른 롤백 만들기

새로 배포된 출시 버전에서 심각한 버그를 발견했거나 새 출시를 차단하는 불안정한 빌드가 발생하는 경우와 같이 앱의 이전 버전으로 빠르게 되돌려야 할 수 있습니다. 이러한 경우 이전 출시에서 원하는 기존 컨테이너 이미지를 복원할 수 있습니다. 이 이미지는 다시 빌드되지 않지만 처음 빌드되었을 때의 코드 및 환경 구성을 사용합니다.

즉시 롤백을 만들려면 다음 안내를 따르세요.

  1. Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
  2. 롤백을 만들 백엔드의 보기를 클릭합니다.
  3. 출시 탭을 선택합니다.
  4. 백엔드의 기록 테이블에서 이전 빌드의 점 3개 메뉴를 선택합니다.
  5. 이 빌드로 롤백을 선택하고 확인합니다.

다시 빌드 및 롤백

이전 버전의 앱으로 되돌리되 현재 구성을 유지하려면 롤백 프로세스의 일부로 앱을 다시 빌드하면 됩니다. 예를 들어 최신 버전에서 Secret Manager의 API 키 값을 업데이트한 경우 다시 빌드하면 롤백 후 앱에서 새 키가 사용됩니다.

다시 빌드하고 롤백하려면 다음 안내를 따르세요.

  1. Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
  2. 롤백을 만들려는 백엔드의 대시보드 보기를 클릭합니다.
  3. 출시 탭을 선택합니다.
  4. 출시 만들기를 선택합니다.
  5. 출시 만들기 대화상자에서 이전 커밋을 선택한 후 다시 빌드하고 롤백할 버전의 커밋 ID를 입력합니다. 커밋 ID는 출시 내역에 나열된 각 출시의 '변경 세부정보'의 일부이며 라벨의 괄호 안에 포함되어 있습니다.
  6. 만들기를 선택하여 롤백을 시작합니다.

출시 설정 변경

백엔드의 대시보드에서 설정 > 배포 뷰의 컨트롤을 사용하여 출시의 라이브 브랜치를 변경하고 자동 출시를 사용 중지하거나 사용 설정할 수 있습니다.

  1. Firebase 콘솔에서 호스팅 및 서버리스 > App Hosting으로 이동합니다.
  2. 출시 설정을 업데이트할 백엔드의 보기를 클릭합니다.
  3. 백엔드 대시보드에서 설정을 선택합니다. 기본 뷰에는 도메인 및 커스텀 도메인에 대한 정보가 표시됩니다.
  4. 배포 뷰를 선택합니다. 이 뷰에서 출시의 라이브 브랜치를 변경하고 자동 출시를 사용 중지하거나 사용 설정할 수 있습니다. 또한 앱 루트 디렉터리와 백엔드 환경을 설정하는 옵션도 있습니다(여러 환경에 배포 참조).

자동 출시 관리

기본적으로 App Hosting는 모든 파일의 '필수' 목록을 가정합니다. 즉, 저장소에 대한 모든 새 커밋이 새 빌드 및 출시를 트리거합니다. 하지만 시간을 절약하고 불필요한 배포를 방지하기 위해 커밋에서 수정된 특정 파일 경로를 기반으로 빌드를 건너뛰도록 App Hosting를 구성할 수 있습니다.

설정 > 출시 > 출시 트리거에서 이를 구성할 수 있습니다. 여기에서 저장소에 대한 모든 새 커밋이 새 빌드 및 출시를 트리거하도록 하려면 필수 경로를 비워두거나 항상 출시를 트리거해야 하는 디렉터리 또는 파일을 정확하게 지정할 수 있습니다. 디렉터리를 지정하는 경우 변경사항이 출시를 트리거해야 하는 모든 경로를 추가해야 합니다.

무시된 경로에 추가하는 디렉터리 또는 파일은 자동 출시를 트리거하지 않습니다. 하위 디렉터리가 필수 목록과 무시 목록에 모두 포함되는 경우 자동 출시가 트리거되지 않습니다. 무시된 경로 목록만 채우면 App Hosting가 필수 경로에 '*'를 자동으로 채웁니다.

이 페이지에 설명된 UI의 스크린샷

변경된 파일이 필수 경로와 일치하지 않는 커밋을 푸시하거나 무시된 경로에서 모든 변경사항이 명시적으로 제외된 경우 App Hosting은 GitHub 이벤트 수신을 계속 확인하지만 빌드 및 출시 상태를 SKIPPED로 표시하고 자동 출시는 트리거되지 않습니다.