From 2d54ab485eeb8a414235fa6297e6ddd1b0688e7d Mon Sep 17 00:00:00 2001 From: LikeJson Date: Tue, 22 Jun 2021 18:47:06 +0800 Subject: [PATCH 1/3] fix: CI --- .github/workflows/main.yml | 63 +++++++++++++++----------------------- app/build.gradle | 30 +++++++++++++++--- 2 files changed, 50 insertions(+), 43 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9745a96..e7cba3f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,38 +46,22 @@ jobs: - name: Replace android-hidden-api android.jar run: bash ./replace_android_hidden_api_jar.sh - + + - name: Write key + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' + run: | + echo storePassword='${{ secrets.KEY_STORE_PASSWORD }}' >> local.properties + echo keyAlias='${{ secrets.ALIAS }}' >> local.properties + echo keyPassword='${{ secrets.ALIAS_KEY_PASSWORD }}' >> local.properties + echo fileDir='../key.jks' >> local.properties + echo ${{ secrets.KEY_STORE }} | base64 --decode > key.jks + - name: Build Release id: buildRelease run: | ./gradlew :app:assembleRelease - echo "::set-output name=releaseName::$(ls app/release/*.apk | head -1 | awk -F '(/|.apk)' '{print $3}').r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)" - - - name: Prepare Signing Keystore - id: signKey - run: | - if [ "" != "${KEY_STORE}" ]; then - echo "${KEY_STORE}" | base64 --decode > key.jks - echo "::set-output name=key::1" - fi - env: - KEY_STORE: ${{ secrets.KEY_STORE }} - - - name: Sign Apks - if: ${{ steps.signKey.outputs.key }} - run: | - apksigner=${ANDROID_SDK_ROOT}/build-tools/30.0.3/apksigner - mkdir app/release/signed - $apksigner sign --ks ./key.jks \ - --ks-pass env:KEY_STORE_PASSWORD \ - --ks-key-alias ${ALIAS} \ - --key-pass env:KEY_PASSWORD \ - --in "$(ls app/release/*.apk | head -1)" \ - --out "./app/release/signed/${{ steps.buildRelease.outputs.releaseName }}.apk" - env: - KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} - ALIAS: ${{ secrets.ALIAS }} - KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + echo "::set-output name=releaseName::`ls app/build/outputs/apk/release/Hide My Applist*-v*-release.apk | awk -F '(/|.apk)' '{print $6}'`" + - name: Upload Signed build artifact if: ${{ steps.signKey.outputs.key }} @@ -85,22 +69,25 @@ jobs: with: name: "${{ steps.buildRelease.outputs.releaseName }}" path: "app/release/signed/*.apk" - - - name: Upload Unsigned build artifact - if: ${{ !steps.signKey.outputs.key }} - uses: actions/upload-artifact@v2 - with: - name: "${{ steps.buildRelease.outputs.releaseName }}.Unsigned" - path: "app/release/*.apk" + - name: Upload apk + if: success() + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.buildRelease.outputs.releaseName }} + path: "app/build/outputs/apk/release/*.apk" + - name: Upload mappings + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.buildRelease.outputs.releaseName }}-mappings + path: "app/build/outputs" - - name: Post to Telegram + - name: Post to channel if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' env: CHANNEL_ID: ${{ secrets.TELEGRAM_TO }} BOT_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} + FILE: "app/build/outputs/apk/release/${{ steps.buildRelease.outputs.releaseName }}.apk" COMMIT_MESSAGE: ${{ github.event.head_commit.message }} run: | - FILE=$(echo app/release/signed/*.apk) ESCAPED=`python3 -c 'import json,os,urllib.parse; print(urllib.parse.quote(json.dumps(os.environ["COMMIT_MESSAGE"])))'` curl -v "https://api.telegram.org/bot${BOT_TOKEN}/sendMediaGroup?chat_id=${CHANNEL_ID}&media=%5B%7B%22type%22:%22document%22,%20%22media%22:%22attach://release%22,%22caption%22:${ESCAPED}%7D%5D" -F release="@$FILE" - diff --git a/app/build.gradle b/app/build.gradle index 84a8c43..7252a85 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,21 +24,41 @@ android { buildConfigField "int", "MIN_BACKUP_VERSION", "46" } - android.applicationVariants.all { variant -> - variant.outputs.all { output -> - outputFileName = "V${variant.versionName}.apk" + signingConfigs { + release { + def properties = new Properties() + def inputStream = project.rootProject.file('local.properties').newDataInputStream() + properties.load( inputStream ) + + File strFile = new File (properties.getProperty('fileDir')) + storeFile file ( strFile ) + storePassword properties.getProperty('storePassword') + keyAlias properties.getProperty('keyAlias') + keyPassword properties.getProperty('keyPassword') + } } + applicationVariants.all { variant -> + variant.outputs.all { + outputFileName = "$rootProject.name-v${variant.versionName}(${variant.versionCode})-${variant.buildType.name}.apk" + } + } + + buildTypes { release { minifyEnabled true shrinkResources true - zipAlignEnabled true - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + debug { + signingConfig signingConfigs.release } } + externalNativeBuild.cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" From b1583f947a84ae887f920b308e323006ec59cfda Mon Sep 17 00:00:00 2001 From: LikeJson Date: Tue, 22 Jun 2021 19:23:58 +0800 Subject: [PATCH 2/3] fix: CI --- .github/workflows/main.yml | 43 ++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e7cba3f..782df16 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,6 +26,16 @@ jobs: with: java-version: '11' + - name: Write key + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' + run: | + echo storePassword='${{ secrets.KEY_STORE_PASSWORD }}' >> local.properties + echo keyAlias='${{ secrets.ALIAS }}' >> local.properties + echo keyPassword='${{ secrets.ALIAS_KEY_PASSWORD }}' >> local.properties + echo fileDir='../key.jks' >> local.properties + echo ${{ secrets.KEY_STORE }} | base64 --decode > key.jks + + - name: Cache Gradle uses: actions/cache@v2 with: @@ -47,15 +57,6 @@ jobs: - name: Replace android-hidden-api android.jar run: bash ./replace_android_hidden_api_jar.sh - - name: Write key - if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' - run: | - echo storePassword='${{ secrets.KEY_STORE_PASSWORD }}' >> local.properties - echo keyAlias='${{ secrets.ALIAS }}' >> local.properties - echo keyPassword='${{ secrets.ALIAS_KEY_PASSWORD }}' >> local.properties - echo fileDir='../key.jks' >> local.properties - echo ${{ secrets.KEY_STORE }} | base64 --decode > key.jks - - name: Build Release id: buildRelease run: | @@ -69,17 +70,19 @@ jobs: with: name: "${{ steps.buildRelease.outputs.releaseName }}" path: "app/release/signed/*.apk" - - name: Upload apk - if: success() - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.buildRelease.outputs.releaseName }} - path: "app/build/outputs/apk/release/*.apk" - - name: Upload mappings - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.buildRelease.outputs.releaseName }}-mappings - path: "app/build/outputs" + + - name: Upload apk + if: success() + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.buildRelease.outputs.releaseName }} + path: "app/build/outputs/apk/release/*.apk" + + - name: Upload mappings + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.buildRelease.outputs.releaseName }}-mappings + path: "app/build/outputs" - name: Post to channel if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master' From 4a7d41ef2d43de46c316f0088c467d6bb76a728b Mon Sep 17 00:00:00 2001 From: LikeJson Date: Tue, 22 Jun 2021 19:36:57 +0800 Subject: [PATCH 3/3] fix: CI --- .github/workflows/main.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 782df16..49b6762 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -61,16 +61,9 @@ jobs: id: buildRelease run: | ./gradlew :app:assembleRelease - echo "::set-output name=releaseName::`ls app/build/outputs/apk/release/Hide My Applist*-v*-release.apk | awk -F '(/|.apk)' '{print $6}'`" + echo "::set-output name=releaseName::`ls app/build/outputs/apk/release/Hide\ My\ Applist*-v*-release.apk | awk -F '(/|.apk)' '{print $6}'`" - - name: Upload Signed build artifact - if: ${{ steps.signKey.outputs.key }} - uses: actions/upload-artifact@v2 - with: - name: "${{ steps.buildRelease.outputs.releaseName }}" - path: "app/release/signed/*.apk" - - name: Upload apk if: success() uses: actions/upload-artifact@v2