Skip to content

[feature/#34] 결과화면 구현 #91

[feature/#34] 결과화면 구현

[feature/#34] 결과화면 구현 #91

# CD-GooglePlay-Internal.yml - Google Play Console 내부 테스트 배포 워크플로우
name: Google Play Internal Test CD
#on:
# push:
# branches:
# - main
jobs:
google_play_internal:
name: Google Play Internal Test
runs-on: ubuntu-latest
steps:
- name: 코드 체크아웃
uses: actions/checkout@v4
- name: JDK 17 설정
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Gradle 캐시 설정
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
# - name: local.properties 설정
# run: |
# echo "base.url=\"${{ secrets.BASE_URL }}\"" >> local.properties
- name: google-services.json 설정
# Firebase 서비스에 필요한 google-services.json 파일을 Secrets에서 가져옵니다.
run: |
echo "google-services.json 파일을 설정합니다..."
echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > ./app/google-services.json
if [ -f ./app/google-services.json ]; then
echo "google-services.json이 ./app/google-services.json에 성공적으로 생성되었습니다."
else
echo "오류: ./app/google-services.json에서 google-services.json을 찾을 수 없습니다."
exit 1
fi
shell: bash
- name: 출시 서명 키 설정
# Android App Bundle 서명을 위한 키스토어 파일을 Base64로 인코딩된 Secrets에서 디코딩하여 생성합니다.
# SIGNING_KEY_BASE64는 GitHub Actions Secrets에 미리 설정되어 있어야 합니다.
run: |
echo "${{ secrets.SIGNING_KEY_BASE64 }}" | base64 --decode > android_signing_key.jks
# 키스토어 파일의 비밀번호, 별칭 등은 Secrets에 별도로 저장해야 합니다.
- name: gradlew 실행 권한 부여
run: chmod +x ./gradlew
- name: 릴리스 AAB 빌드 (Google Play 내부 테스트용)
# Google Play Console 배포를 위해 릴리스 AAB(Android App Bundle)를 빌드합니다.
run: ./gradlew bundleRelease
env:
# Gradle에 서명 정보를 환경 변수로 전달합니다.
ORG_GRADLE_PROJECT_signingStoreFile: android_signing_key.jks
ORG_GRADLE_PROJECT_signingKeyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}
ORG_GRADLE_PROJECT_signingKeyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
ORG_GRADLE_PROJECT_signingStorePassword: ${{ secrets.SIGNING_STORE_PASSWORD }}
- name: Google Play Console 내부 테스트 배포
# 빌드된 릴리스 AAB를 Google Play Console 내부 테스트 트랙으로 배포합니다.
# r0adkll/upload-google-play 액션을 사용합니다.
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }} # Google Play 서비스 계정 JSON (Base64 인코딩된 내용)
packageName: your.package.name # 서비스명 확정 후 앱의 실제 패키지 이름으로 변경해야 합니다.
releaseFile: app/build/outputs/bundle/release/app-release.aab
track: internal
- name: Slack 알림 (내부 테스트 배포 성공)
if: success()
uses: 8398a7/action-slack@v3
with:
status: success
fields: workflow,job,commit,repo,author,took,ref
author_name: GitHub Actions
text: "🚀 Google Play 내부 테스트 배포 성공! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`"
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Slack 알림 (내부 테스트 배포 실패)
if: failure()
uses: 8398a7/action-slack@v3
with:
status: failure
fields: workflow,job,commit,repo,author,took,ref
author_name: GitHub Actions
text: "🚨 Google Play 내부 테스트 배포 실패! 브랜치: `${{ github.ref_name }}` 커밋: `${{ github.sha }}`"
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}