📗

GitHub Actions で Bazel の Android NDK ビルド環境を設定する

2022/08/21に公開

初稿: 2022-08-21
小松弘幸 (@komatsuh)

記事の内容

GitHub Actions で、Bazel による Android NDK ビルド用の環境を設定する方法を紹介します。

Bazel での Android NDK ビルドの設定はすでにできている前提で、GitHub Actions でも同様のビルドをする方法がこの記事の主題です。

結論

      - name: setup
        run: |
          # Android NDK
          # Bazel has not yet supported Android NDK 22 or later.
          # https://github.com/bazelbuild/bazel/issues/12889
          # Install Android NDK 21.
          # https://github.com/actions/runner-images/issues/5930
          ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
          SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
          echo "y" | $SDKMANAGER "ndk;21.4.7075529"
          echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/21.4.7075529" >> $GITHUB_ENV

説明

GitHub Actions での Android NDK のデフォルトバージョンが r21 から r25 に更新されました。

しかし残念ながら Bazel の Android NDK ビルドは、NDK r22 以降をまだ対応していません。

そこで、GitHub Actions の実行環境に NDK r21 を入れる必要があります。

また GitHub Actions の実行環境では、ANDROID_NDK_HOME のデフォルト値は NDK バージョンの固有のディレクトリが設定されています。具体的には /usr/local/lib/android/sdk/ndk/25.0.8775105 です。この値もあわせて r21 に対応した 21.4.7075529 にします。

ディレクトリ名に使っているバージョン番号は、GitHub Actions のランタイム情報や Android NDK のダウンロードサイトから確認できます。

さいごに

この記事は Bazel が Android NDK r25 に対応したら必要なくなります。
早く必要なくなるといいなあと願っています。

それまではニッチな内容ですがどなたかのお役に立てばうれしいです。

GitHubで編集を提案

Discussion