BitriseやGitHub Actionsでの自動ビルドにJava 11を設定する

Android S(Android 12)だとJava11が必要でアプリの自動ビルドがこけた

スマホアプリの開発者の皆さんはAndroid SのSDK対応を行なうと思いますが、対応が終わってGitにPushすると自動ビルドのサービス側でJava11が設定されておらず、自動ビルドがコケたりします。プロジェクトによってBitriseを使ったり、GitHub Actionsを使ったりしていますが、両方で対応が必要だったため、対応方法を晒しておきます。

Bitriseの場合

Workflow Editor画面で”Cache:Pull” Stepの後ろくらいに、”Do anything with Script step”を置き(自動でUIで作られるWorkflowだと元々設定されている)、下記のスクリプトを追記する。

sudo update-alternatives --set javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java

export JAVA_HOME='/usr/lib/jvm/java-11-openjdk-amd64'
envman add --key JAVA_HOME --value '/usr/lib/jvm/java-11-openjdk-amd64'

GitHub Actionsの場合

ActionsのYAMLを下記のようにしておく。

name: Java CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 11
        uses: actions/setup-java@v2
        with:
          java-version: '11'
          distribution: 'adopt'
      - name: Build with Gradle
        run: ./gradlew build

参考文献