name: Magisk Build on: push: branches: [ master ] paths: - 'app/**' - 'native/**' - 'stub/**' - 'buildSrc/**' - 'build.py' - 'gradle.properties' - '.github/workflows/build.yml' 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 ] env: NDK_CCACHE: ${{ github.workspace }}/ccache CCACHE_DIR: ${{ github.workspace }}/.ccache 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 ccache run: bash .github/ccache.sh - name: Cache Gradle dependencies uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper !~/.gradle/caches/build-cache-* key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }} restore-keys: ${{ runner.os }}-gradle- - name: Cache build cache uses: actions/cache@v2 with: path: | ${{ github.workspace }}/.ccache ~/.gradle/caches/build-cache-* key: ${{ runner.os }}-build-cache-${{ github.sha }} restore-keys: ${{ runner.os }}-build-cache- - name: Set up NDK run: python build.py -v ndk - name: Build release run: | ./ccache -zp python build.py -vr all - name: Build debug run: | python build.py -v all ./ccache -s - name: Stop gradle daemon run: ./gradlew --stop # Only upload artifacts built on Linux - name: Upload build artifact if: runner.os == 'Linux' uses: actions/upload-artifact@v2 with: name: ${{ github.sha }} path: out