프론트엔드에서 사용자 행동 로그를 기록하고 분석하기 위해 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
참고한것