diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 622b7c0..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Build CI - -on: - push: - branches: [ master ] - paths-ignore: - - '**.md' - - '**.txt' - - '.github/**' - - '!.github/workflows/**' - workflow_dispatch: - -jobs: - build: - name: Build CI - runs-on: ubuntu-latest - if: ${{ !startsWith(github.event.head_commit.message, '[skip ci]') }} - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - submodules: recursive - fetch-depth: 0 - - - name: Gradle wrapper validation - uses: gradle/wrapper-validation-action@v1 - - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: '11' - - - name: Write key - if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' - run: | - echo KEYSTORE_FILE=`pwd`/key.jks >> local.properties - echo KEYSTORE_PASSWORD='${{ secrets.KEYSTORE_PASSWORD }}' >> local.properties - echo KEYSTORE_ALIAS='${{ secrets.KEYSTORE_ALIAS }}' >> local.properties - echo KEYSTORE_ALIAS_PASSWORD='${{ secrets.KEYSTORE_ALIAS_PASSWORD }}' >> local.properties - echo "${{ secrets.KEYSTORE }}" | base64 --decode > key.jks - - - name: Cache gradle dependencies - uses: actions/cache@v2 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: gradle-deps-app-${{ hashFiles('**/build.gradle') }} - restore-keys: | - gradle-deps - - - name: Build with Gradle - id: buildApk - run: | - chmod +x ./gradlew - ./gradlew :app:aRelease :app:aDebug - echo "::set-output name=debugName::`ls app/build/outputs/apk/debug/*-debug.apk | grep -Po '[^/]*?(?=\.apk)' `" - echo "::set-output name=releaseName::`ls app/build/outputs/apk/release/*-release.apk | grep -Po '[^/]*?(?=\.apk)' `" - - - name: Upload debug - if: success() - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.buildApk.outputs.debugName }} - path: "app/build/outputs/apk/debug/*-debug.apk" - - - name: Upload release - if: success() - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.buildApk.outputs.releaseName }} - path: "app/build/outputs/apk/release/*-release.apk" - - - name: Upload mappings - uses: actions/upload-artifact@v2 - with: - name: mappings - path: "app/build/outputs/mapping/release" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..26f29e8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,82 @@ +name: Build CI + +on: + workflow_dispatch: + push: + branches: [ master ] + paths-ignore: + - '**.md' + - '**.txt' + - '.github/**' + - '!.github/workflows/**' + +jobs: + build: + name: Build CI + runs-on: ubuntu-latest + if: ${{ !startsWith(github.event.head_commit.message, '[skip ci]') }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Checkout libxposed/api + uses: actions/checkout@v4 + with: + repository: libxposed/api + path: libxposed/api + fetch-depth: 0 + + - name: Checkout libxposed/service + uses: actions/checkout@v4 + with: + repository: libxposed/service + path: libxposed/service + fetch-depth: 0 + + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: corretto + java-version: '17' + + - name: Write key + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' + run: | + echo "${{ secrets.KEYSTORE }}" | base64 --decode > key.jks + echo keystore.store.file=`pwd`/key.jks >> local.properties + echo keystore.store.password='${{ secrets.KEYSTORE_PASSWORD }}' >> local.properties + echo keystore.key.alias='${{ secrets.KEYSTORE_KEY }}' >> local.properties + echo keystore.key.password='${{ secrets.KEYSTORE_KEY_PASSWORD }}' >> local.properties + + - name: Build with Gradle + id: build_apk + run: | + cd libxposed/api && ./gradlew publishToMavenLocal && cd ../.. + cd libxposed/service && ./gradlew publishToMavenLocal && cd ../.. + ./gradlew :app:assemble + echo "debug=$(ls app/build/outputs/apk/debug/*-debug.apk | grep -Po '[^/]*?(?=\.apk)')" + echo "release$(ls app/build/outputs/apk/release/*-release.apk | grep -Po '[^/]*?(?=\.apk)')" + + - name: Upload debug + if: success() + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.build_apk.outputs.debug }} + path: "app/build/outputs/apk/debug/*-debug.apk" + + - name: Upload release + if: success() + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.build_apk.outputs.release }} + path: "app/build/outputs/apk/release/*-release.apk" + + - name: Upload mappings + if: success() + uses: actions/upload-artifact@v4 + with: + name: mappings + path: "app/build/outputs/mapping/release"