CI 연동

GitHub Actions에서 Android 패키지 등록 CI 확인

출시 워크플로는 승격 전에 프로덕션 application ID와 인증서 지문을 확인할 수 있습니다. API 키는 암호화된 CI 시크릿이나 통제된 내부 프록시 뒤에 보관합니다.

가이드 요약

Android 패키지 등록 CI를 GitHub Actions에 추가하고 Google API 키를 노출하지 않은 채 프로덕션 출시를 사전 확인합니다.

대상: GitHub Actions로 Android 빌드, 서명, 출시를 자동화하는 팀.

출시 점검 순서

  1. 출시 변형에서 프로덕션 application ID를 가져옵니다.
  2. 서명된 아티팩트에서 공개 SHA-256 지문을 추출합니다.
  3. 보호된 작업 또는 팀 엔드포인트로 공식 Status API를 호출합니다.
  4. 미등록 또는 불일치면 승격을 중단하고 수동 예외 정책을 적용합니다.

핵심 정보

시크릿Google API key
안전한 빌드 출력공개 인증서 SHA-256
권장 게이트스토어 승격 전
주의 사항

Actions 로그에 API 키, 키 저장소 비밀번호, 비공개 서명 키를 출력하지 마세요. 공개 인증서 지문은 비공개 키가 아닙니다. 수동 재실행이 필요하면 자격 증명을 입력값으로 받지 않는 workflow_dispatch를 사용하세요.

상세 안내

출시 게이트 작업

출시 APK 서명 후 스토어 승격 전에 조회합니다. Google API 키는 GitHub Secrets에 넣고 Android Developer ID Status API로 제한합니다. 신뢰하지 않는 코드가 출시 자격 증명에 접근할 수 있는 pull_request 컨텍스트는 피합니다.

아래 예시는 패키지만 확인하는 최소 게이트입니다. 인증서까지 검증하려면 서명된 아티팩트의 SHA-256을 얻어 요청에 certificateFingerprint를 추가합니다. jq로 state를 파싱하고 안정된 미해결 상태는 즉시 실패시키며 RESOURCE_EXHAUSTED, INTERNAL, UNAVAILABLE만 제한된 지수 백오프로 재시도합니다.

  • API 키를 echo하지 않습니다.
  • 출시 작업의 타사 Actions를 커밋 SHA로 고정합니다.
  • 서명 비밀 없이 상태 아티팩트를 저장합니다.
GitHub Actions 최소 패키지 확인 예시
- name: Check Android registration
  env:
    API_KEY: ${{ secrets.ANDROID_DEVELOPER_ID_API_KEY }}
    PACKAGE_NAME: com.example.app
  run: |
    curl --fail --silent --show-error \
      -H "X-Goog-Api-Key: $API_KEY" \
      "https://androiddeveloperidstatus.googleapis.com/v1/packages/$PACKAGE_NAME/packageRegistrationStatus:check" \
      | tee status.json
    test "$(jq -r .state status.json)" = "REGISTERED"

운영 패키지 이름을 입력하고, 서명까지 확인하려면 실제 배포 APK의 인증서 SHA-256을 추가하세요. 이 조회는 스토어 심사와 별개입니다.

상태 확인 →

자주 묻는 질문

CI가 PkgReady 브라우저 엔드포인트를 호출해야 하나요?

아닙니다. 조직이 소유하고 보호하는 API 키로 공식 서버 간 API를 직접 호출하세요.

어떤 결과에서 출시를 실패시켜야 하나요?

NOT_REGISTERED와 인증서 불일치에서 실패시킵니다. 할당량 또는 서비스 오류는 제한된 재시도가 있는 인프라 실패로 처리합니다.

출처 및 검토

최종 검토일: