github action에서 expo android 빌드 테스트 시 google-services.json 에러

황토소금·2024년 8월 9일

TIL

목록 보기
12/49

프론트엔드에서 사용자 행동 로그를 기록하고 분석하기 위해 firebase analytics를 도입했다.

그 과정에서 프로젝트 폴더에서 android 폴더 부분을 수정했어야했다.
그 중 하나가 /android/app에 google-services.json 파일을 넣어줘야 하는 것이었다.

로컬에서는 문제가 없었지만 깃허브 PR에서 문제가 생겼다. dev 브랜치에 PR을 올리면 안드로이드 빌드 테스트를 하는데 그 과정에서 google-services.json 파일이 없어서 에러가 발생했다.

그래서 google-services.json을 깃허브 secrets에 등록하고 github action에서 json 파일을 주입해주었다. 그랬더니 문제 해결!

cat과 echo

cat PATH > FILE_NAME


cat: ~~ Is a directory
라는 에러가 뜨는데 파일이 생성되긴 하길래 github action script에도 cat을 썼다가 저 에러가 그대로 나오고 동작이 중지되었다.

그래서

echo FILE_CONTENT > PATH/FILE_NAME

echo로 하니까 잘 생성되었다.
터미널 명령어 공부도 해야겠다.

수정한 최종 스크립트

name: React Native Expo Android Build Check

on:
  pull_request:
    branches: [ dev ]

jobs:
  check-android-build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '20'

    - name: Install dependencies
      run: |
        npm ci
        
    - name: Setup Java
      uses: actions/setup-java@v3
      with:
        distribution: 'temurin'
        java-version: '17'

    - name: Setup Android SDK
      uses: android-actions/setup-android@v2

    - name: create google-services.json
      env:
        GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
      run: |
        echo "$GOOGLE_SERVICES_JSON" > /home/runner/work/frontend/frontend/google-services.json
        
    - name: Check Android build
      run: |
        npx expo prebuild --platform android
        cd android
        ./gradlew assembleDebug --dry-run
    - name: Check build result
      run: |
        if [ $? -eq 0 ]; then
          echo "Build check passed successfully"
        else
          echo "Build check failed"
          exit 1
        fi

참고한것

profile
안녕하세요, 반갑습니다.

0개의 댓글