name: Magisk Build on: push: branches: [ master ] pull_request: branches: [ master ] workflow_dispatch: jobs: build: name: Build on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ ubuntu-latest, windows-latest, macOS-latest ] steps: - name: Check out uses: actions/checkout@v2 with: submodules: 'recursive' fetch-depth: 0 - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-version: '11' - name: Set up Python 3 uses: actions/setup-python@v2 with: python-version: '3.x' - name: Set up GitHub env (Windows) if: runner.os == 'Windows' run: | $oldAndroidPath = $env:ANDROID_SDK_ROOT $sdk_root = "C:\Android" New-Item -Path $sdk_root -ItemType SymbolicLink -Value $oldAndroidPath $ndk_ver = Select-String -Path "gradle.properties" -Pattern "^magisk.fullNdkVersion=" | % { $_ -replace ".*=" } echo "ANDROID_SDK_ROOT=$sdk_root" >> $env:GITHUB_ENV echo "ANDROID_HOME=$sdk_root" >> $env:GITHUB_ENV echo "MAGISK_NDK_VERSION=$ndk_ver" >> $env:GITHUB_ENV - name: Set up GitHub env (Unix) if: runner.os != 'Windows' run: | ndk_ver=$(sed -n 's/^magisk.fullNdkVersion=//p' gradle.properties) echo ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT >> $GITHUB_ENV echo MAGISK_NDK_VERSION=$ndk_ver >> $GITHUB_ENV - name: Cache Gradle uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }} restore-keys: ${{ runner.os }}-gradle- - name: Cache NDK id: ndk-cache uses: actions/cache@v2 with: path: ${{ env.ANDROID_SDK_ROOT }}/ndk/magisk key: ${{ runner.os }}-ndk-${{ env.MAGISK_NDK_VERSION }} - name: Set up NDK if: steps.ndk-cache.outputs.cache-hit != 'true' run: python build.py ndk - name: Build release run: python build.py -vr all - name: Build debug run: python build.py -v all # Only upload artifacts built on Linux - name: Upload build artifact if: runner.os == 'Linux' && github.event_name != 'pull_request' uses: actions/upload-artifact@v2 with: name: ${{ github.sha }} path: out