actions: Do everything in the same workflow #28
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 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: compiled-binaries | |
path: libv4a_re_*.so | |
package: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# Download the compiled binaries from the 'build' workflow | |
- name: Download compiled libraries | |
uses: actions/download-artifact@v3 | |
with: | |
name: compiled-binaries | |
path: compiled/ | |
# Prepare Magisk module directory by copying the necessary ABI files | |
- name: Prepare Magisk Module | |
run: | | |
for abi in armeabi-v7a arm64-v8a x86 x86_64; do | |
mkdir -p module/common/files/$abi | |
cp compiled/libv4a_re_$abi.so module/common/files/$abi/ | |
done | |
# Zip the Magisk module | |
- name: Zip Magisk Module | |
run: | | |
cd module | |
zip -r ../magisk_module.zip ./ | |
# Upload the zipped Magisk module as an artifact | |
- name: Upload Magisk Module | |
uses: actions/upload-artifact@v3 | |
with: | |
name: magisk_module | |
path: magisk_module.zip |