actions: Create Magisk Module with GitHub Actions #26
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: [push, pull_request] | |
env: | |
NDK_VERSION: 25.2.9519653 | |
MIN_SDK_VERSION: 21 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
abi: ['armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache NDK | |
id: ndk-cache | |
uses: actions/cache@v3 | |
with: | |
path: ndk | |
key: ndk-${{ env.NDK_VERSION }} | |
restore-keys: | | |
ndk-${{ env.NDK_VERSION }} | |
- name: Install NDK | |
if: steps.ndk-cache.outputs.cache-hit != 'true' | |
run: | | |
echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;${{ env.NDK_VERSION }}" | |
mv $ANDROID_HOME/ndk/${{ env.NDK_VERSION }} ndk | |
- name: Set NDK environment variable | |
run: echo "ANDROID_NDK_HOME=$(pwd)/ndk" >> $GITHUB_ENV | |
- name: Build with CMake | |
run: | | |
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI=${{ matrix.abi }} -DANDROID_PLATFORM=android-${{ env.MIN_SDK_VERSION }} -DANDROID_ARM_NEON=TRUE . | |
cmake --build . -- -j$(nproc) | |
- name: Rename output | |
run: | | |
mv libv4a_re.so libv4a_re_${{ matrix.abi }}.so | |
# Move compiled libraries into the Magisk module folder | |
- name: Move to Magisk Module | |
run: | | |
mkdir -p module/common/files/${{ matrix.abi }} | |
mv libv4a_re_${{ matrix.abi }}.so module/common/files/${{ matrix.abi }}/ | |
# Zip the Magisk module folder | |
- name: Zip Magisk Module | |
run: | | |
cd module | |
zip -r ../magisk_module.zip ./ | |
# Upload the Magisk module zip as an artifact | |
- name: Upload Magisk Module | |
uses: actions/upload-artifact@v3 | |
with: | |
name: magisk_module | |
path: magisk_module.zip | |
# Upload compiled libraries as an artifact | |
- name: Upload compiled libraries | |
uses: actions/upload-artifact@v3 | |
with: | |
name: compiled-binaries | |
path: libv4a_re_*.so |