LoginSignup
2
0

More than 1 year has passed since last update.

【Github Actions】gradle.propertiesの設定方法

Last updated at Posted at 2021-12-04

はじめに

Githubで保管しているAPIキーを取得してgradle.propertiesに出力する方法が、
他の人の記事を参考にしてもうまくいかなかったので自分の解決策を紹介します。

全コードはこちらから ↓
https://github.com/kuwabara-hirokazu/facial_expression_championship

Githubにキーを登録

①Githubのプロジェクトから Settings >> Secrets に遷移
②右上の「New repository secret」を押して作成したいキーと値を登録する

最初に記述したyml設定(ビルド失敗)

gradle.propertiesにAPIキーのみを記載した。

check_push.yml
- name: Restore gradle.properties
  env:
    FACE_API_KEY: ${{ secrets.FACE_API_KEY }}
  # ${{ secrets.キー名 }} でGithub上に登録してあるキーの値を取得できる。
  run:
    echo "faceApiKey=$FACE_API_KEY" >> ./gradle.properties
  # 「faceApiKey=***」をgradle.propertiesに記載

修正1回目(ビルド失敗)

スクリーンショット 2021-12-05 13.53.53.png
GithubActionsのログにandroid.useAndroidX=trueを設定しろと記載があったので追加。

Androidプラグインはサポートライブラリの代わりに適切なAndroidXライブラリを使用する
公式より

check_push.yml
- name: Restore gradle.properties
  env:
    FACE_API_KEY: ${{ secrets.FACE_API_KEY }}
  run: |
 # 下記を追加    
    echo "android.useAndroidX=true" >> ./gradle.properties
    echo "faceApiKey=$FACE_API_KEY" >> ./gradle.properties

修正2回目(ビルド成功)

再度ログをよく見てみると
Daemon will be stopped at the end of the build after running out of JVM memoryCaused by: java.lang.OutOfMemoryError: Metaspaceという記載があったので、
もしやと思いorg.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8を追加してGradleデーモンの最大ヒープサイズを2048MBに増やしてみたところ、成功した。

check_push.yml
- name: Restore gradle.properties
  env:
    FACE_API_KEY: ${{ secrets.FACE_API_KEY }}
  run:
    echo "android.useAndroidX=true" >> ./gradle.properties
    echo "org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8" >> ./gradle.properties
    echo "faceApiKey=$FACE_API_KEY" >> ./gradle.properties

-Dfile.encoding=UTF-8はなくてもいいかもしれないけど、ローカルビルド時に自動作成された./gradle.propertiesにも記載されていたので一応。

まとめ 全体設定

check_push.yml
name: Check push
on: [ push ]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      # チェックアウト
      - name: Check out
        uses: actions/checkout@v2

      # JDKのセットアップ
      - name: set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      # Gradleのキャッシュ復元(2回目以降の実行が早くなる)
      - name: Gradle cache
        uses: actions/cache@v2
        with:
          path: ~/.gradle/caches
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
          restore-keys: |
            ${{ runner.os }}-gradle-

      # APIキーを取得してgradle.propertiesに出力
      - name: Restore gradle.properties
        env:
          FACE_API_KEY: ${{ secrets.FACE_API_KEY }}
        run: |
          echo "android.useAndroidX=true" >> ./gradle.properties
          echo "org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8" >> ./gradle.properties
          echo "faceApiKey=$FACE_API_KEY" >> ./gradle.properties

      # テスト実行
      - name: UnitTest
        run: ./gradlew testDebugUnitTest

おわりに

Yaml自体初めてさわったので書き方という点でもめちゃくちゃ苦しんでたけど、
ローカルビルド時に自動作成された./gradle.propertiesを参考に作成すればいいだけの話だったというオチでした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0