From 185f5c78534da792c1e66b70fe73607902b09cf9 Mon Sep 17 00:00:00 2001 From: Fangjun Kuang Date: Fri, 23 Feb 2024 09:58:11 +0800 Subject: [PATCH] Publish Android pre-built libs on release. (#310) --- .github/workflows/android.yaml | 142 +++++++++++++++++++++++++++++++++ CMakeLists.txt | 2 +- 2 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/android.yaml diff --git a/.github/workflows/android.yaml b/.github/workflows/android.yaml new file mode 100644 index 00000000..8711a3b6 --- /dev/null +++ b/.github/workflows/android.yaml @@ -0,0 +1,142 @@ +name: android + +on: + push: + branches: + - master + paths: + - '.github/workflows/android.yaml' + - 'CMakeLists.txt' + - 'cmake/**' + - 'sherpa-ncnn/csrc/*' + - 'sherpa-ncnn/jni/*' + - 'build-android*.sh' + tags: + - '*' + pull_request: + branches: + - master + paths: + - '.github/workflows/android.yaml' + - 'CMakeLists.txt' + - 'cmake/**' + - 'sherpa-ncnn/csrc/*' + - 'sherpa-ncnn/jni/*' + - 'build-android*.sh' + + workflow_dispatch: + inputs: + release: + description: "Whether to release" + type: boolean + +env: + RELEASE: + |- # Release if there is a release tag name or a release flag in workflow_dispatch + ${{ github.event.release.tag_name != '' || github.event.inputs.release == 'true' }} + +concurrency: + group: android-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-android-libs: + name: Android for ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Display NDK HOME + shell: bash + run: | + echo "ANDROID_NDK_LATEST_HOME: ${ANDROID_NDK_LATEST_HOME}" + ls -lh ${ANDROID_NDK_LATEST_HOME} + + - name: build android arm64-v8a + shell: bash + run: | + export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME + ./build-android-arm64-v8a.sh + mkdir -p jniLibs/arm64-v8a/ + cp -v ./build-android-arm64-v8a/install/lib/*.so ./jniLibs/arm64-v8a/ + + - name: build android armv7-eabi + shell: bash + run: | + export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME + ./build-android-armv7-eabi.sh + mkdir -p ./jniLibs/armeabi-v7a/ + cp -v ./build-android-armv7-eabi/install/lib/*.so ./jniLibs/armeabi-v7a/ + + - name: build android x86_64 + shell: bash + run: | + export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME + ./build-android-x86-64.sh + mkdir -p ./jniLibs/x86_64 + cp -v ./build-android-x86-64/install/lib/*.so ./jniLibs/x86_64 + + - name: build android x86 + shell: bash + run: | + export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME + ./build-android-x86.sh + mkdir -p ./jniLibs/x86 + cp -v ./build-android-x86/install/lib/*.so ./jniLibs/x86 + + - name: Copy files + shell: bash + run: | + SHERPA_NCNN_VERSION=v$(grep "SHERPA_NCNN_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) + echo "SHERPA_NCNN_VERSION=$SHERPA_NCNN_VERSION" >> "$GITHUB_ENV" + + filename=sherpa-ncnn-${SHERPA_NCNN_VERSION}-android.tar.bz2 + + tar cjvf $filename ./jniLibs + + ls -lh + + - uses: actions/upload-artifact@v4 + with: + name: sherpa-ncnn-android-libs + path: ./jniLibs + + # https://huggingface.co/docs/hub/spaces-github-actions + - name: Publish to huggingface + if: github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa' && github.event_name == 'push' && contains(github.ref, 'refs/tags/') + env: + HF_TOKEN: ${{ secrets.HF_TOKEN }} + run: | + git config --global user.email "csukuangfj@gmail.com" + git config --global user.name "Fangjun Kuang" + + GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/sherpa-ncnn-libs huggingface + + cd huggingface + git lfs pull + + cp -v ../sherpa-ncnn-*-android.tar.bz2 ./ + + git status + git lfs track "*.bz2" + + git add . + + git commit -m "upload sherpa-ncnn-${SHERPA_NCNN_VERSION}-android.tar.bz2" + + git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-ncnn-libs main + + - name: Release android libs + if: github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa' && github.event_name == 'push' && contains(github.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + file_glob: true + overwrite: true + file: sherpa-ncnn-*-android.tar.bz2 diff --git a/CMakeLists.txt b/CMakeLists.txt index b7c6f1c4..bf4d4358 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.13 FATAL_ERROR) project(sherpa-ncnn) -set(SHERPA_NCNN_VERSION "2.1.7") +set(SHERPA_NCNN_VERSION "2.1.8") # Disable warning about #