📗
GitHub Actions で Bazel の Android NDK ビルド環境を設定する
初稿: 2022-08-21
小松弘幸 (@komatsuh)
記事の内容
GitHub Actions で、Bazel による Android NDK ビルド用の環境を設定する方法を紹介します。
Bazel での Android NDK ビルドの設定はすでにできている前提で、GitHub Actions でも同様のビルドをする方法がこの記事の主題です。
結論
- Android NDK r21 を明示的にインストールする
- ANDROID_NDK_HOME を Android NDK r21 へ設定する
- 実例: mozc/blob/master/.github/workflows/android.yaml
- 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 のダウンロードサイトから確認できます。
- runner-images/Ubuntu2004-Readme.md at main · actions/runner-images
- Unsupported Downloads · android/ndk Wiki
さいごに
この記事は Bazel が Android NDK r25 に対応したら必要なくなります。
早く必要なくなるといいなあと願っています。
それまではニッチな内容ですがどなたかのお役に立てばうれしいです。
Discussion