背景
Firebaseを使ったAndroidアプリ開発ならgoogle-services.json
は必須のファイルだけれど、プライベートな情報のためgitignoreしていた
問題
GithubActionsにてAndroidのワークフローを記述していてBuild error
原因は
google-services.json is missing
そのためCI時にのみgoogle-services.json
を読み込ませる必要があった
どうしたか
もとのjsonファイルをbase64化した値を取得する
例
cat google-services.json | base64
openssl base64 -in google-services.json -out base64file
取得した値をGithubRepositoryのSecrets
に記載する
Setttings -> Secrets -> Add a new secrets
例では
NAME: GOOGLE_SERVICE_JSON
VALUE: base64化した値
にしています
GithubActionsのymlにてdecodeし、配置し直す
※一部のみ記載
- secretsは
$ {{ secrets.NAME }}
の形式でとれる - それを環境変数に追加し
- decode処理し
- google-services.jsonを置くべき場所に配置する
android.yml
- name: copy google-service
env:
GOOGLE_SERVICE: ${{ secrets.GOOGLE_SERVICE_JSON }}
run: echo $GOOGLE_SERVICE | base64 --decode --ignore-garbage > ./app/google-services.json
- name: build
run: ./gradlew build
これでうまく緑色になってくれました
参考になれば幸いです