From 1ac5f0d7fadd8cbe18cf7e0908a53dcd6d9c0d73 Mon Sep 17 00:00:00 2001 From: Hermes Date: Mon, 31 Aug 2026 20:33:40 -0500 Subject: [PATCH] ci: build and verify bundled Android git libs --- .gitea/workflows/android-build.yml | 19 ++++++++++++++++++- AndroidProjectTooling.sh | 22 ++++++++++++++++++---- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/android-build.yml b/.gitea/workflows/android-build.yml index 4cc429c..5c01f95 100644 --- a/.gitea/workflows/android-build.yml +++ b/.gitea/workflows/android-build.yml @@ -96,14 +96,27 @@ jobs: set -euxo pipefail printf 'sdk.dir=%s/.android/sdk\n' "$HOME" > local.properties + - name: Install Rust toolchain + shell: bash + run: | + set -euxo pipefail + if ! command -v cargo >/dev/null 2>&1; then + curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal + fi + echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" + export PATH="$HOME/.cargo/bin:$PATH" + cargo --version + rustc --version + - name: Compile bundled native Git binaries shell: bash run: | set -euxo pipefail + export PATH="$HOME/.cargo/bin:$PATH" export ANDROID_SDK_ROOT="$HOME/.android/sdk" export ANDROID_HOME="$ANDROID_SDK_ROOT" chmod +x ./AndroidProjectTooling.sh - bash ./AndroidProjectTooling.sh --compile-git + bash ./AndroidProjectTooling.sh --compile-android-git - name: Prepare CI build metadata id: build_meta @@ -151,6 +164,8 @@ jobs: required = { 'lib/arm64-v8a/libgit.so', 'lib/armeabi-v7a/libgit.so', + 'lib/x86/libgit.so', + 'lib/x86_64/libgit.so', } found = {name for name in names if name in required} print('APK_NATIVE_GIT', sorted(found)) @@ -182,6 +197,8 @@ jobs: required = { 'base/lib/arm64-v8a/libgit.so', 'base/lib/armeabi-v7a/libgit.so', + 'base/lib/x86/libgit.so', + 'base/lib/x86_64/libgit.so', } found = {name for name in names if name in required} print('AAB_NATIVE_GIT', sorted(found)) diff --git a/AndroidProjectTooling.sh b/AndroidProjectTooling.sh index 04dce6e..5f7a6b2 100755 --- a/AndroidProjectTooling.sh +++ b/AndroidProjectTooling.sh @@ -48,7 +48,7 @@ quiet_log_name() { local arg for arg in "$@"; do case "$arg" in - --build|--build-release-aab|--test|--clean-test|--test-emulator|--compile-git) + --build|--build-release-aab|--test|--clean-test|--test-emulator|--compile-git|--compile-android-git) mode="${arg#--}" ;; esac @@ -786,6 +786,11 @@ maybe_run_operation() { build_all_git_targets return ;; + --compile-android-git) + setup_env + build_android_git + return + ;; *) return ;; @@ -850,7 +855,7 @@ maybe_run_operation() { print_usage() { cat <