diff --git a/.github/scripts/decrypt_secret.sh b/.github/scripts/decrypt_secret.sh new file mode 100644 index 000000000..4afc6b28c --- /dev/null +++ b/.github/scripts/decrypt_secret.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# 解密文件 +gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output $GITHUB_WORKSPACE/app/gradle.properties $GITHUB_WORKSPACE/.github/secrets/gradle.properties.gpg +echo "Decrypt gradle.properties done" +gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output $GITHUB_WORKSPACE/app/key.jks $GITHUB_WORKSPACE/.github/secrets/key.jks.gpg +echo "Decrypt key.jks done" diff --git a/.github/secrets/gradle.properties.gpg b/.github/secrets/gradle.properties.gpg new file mode 100644 index 000000000..06da97069 --- /dev/null +++ b/.github/secrets/gradle.properties.gpg @@ -0,0 +1,2 @@ +  5tϮҌ +^/Q9^lyJ*T FaIvKZ9LO7Eoo;VV)S6>7u ٩ԇ(C*զȱ`d /Ghp]z<~2̤@&=̩^wcx \ No newline at end of file diff --git a/.github/secrets/key.jks.gpg b/.github/secrets/key.jks.gpg new file mode 100644 index 000000000..fa961b824 Binary files /dev/null and b/.github/secrets/key.jks.gpg differ diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..b3e6d2863 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,43 @@ +name: Android Build + +# https://docs.github.com/cn/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets + +on: + watch: + types: [started] + +jobs: + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + + - name: clone code + run: | + echo "clear [18PlusList.txt]" + echo "">/opt/legado/app/src/main/assets/18PlusList.txt + + - name: Decrypt large secret + run: bash ./.github/scripts/decrypt_secret.sh + env: + LARGE_SECRET_PASSPHRASE: ${{ secrets.ANDROID_TEST }} + + - name: Build with Gradle + run: | + chmod +x gradlew + ./gradlew assembleRelease + + - name : upload apk + uses: actions/upload-artifact@master + if: always() + with: + name: legado + path: $GITHUB_WORKSPACE/app/build/outputs/apk/app/release/ diff --git a/.github/workflows/legado.yml b/.github/workflows/legado.yml deleted file mode 100644 index 946274327..000000000 --- a/.github/workflows/legado.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: Android CI - -on: - release: - types: [published] - push: - tags: - - '3.*' - watch: - types: [started] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: install git - run: | - sudo apt-get update - sudo apt-get -y install git - - name: clone code - run: | - git clone https://github.com/gedoor/legado.git /opt/legado - echo "ojbk">/opt/legado/app/src/main/assets/18PlusList.txt - - name: release apk sign - run: | - git clone https://github.com/10bits/gedoor-Build.git /opt/gedoor-Build - cp /opt/gedoor-Build/.github/workflows/legado.jks /opt/legado/app/legado.jks - sed '$a\RELEASE_STORE_FILE=./legado.jks' /opt/legado/gradle.properties -i - sed '$a\RELEASE_KEY_ALIAS=legado' /opt/legado/gradle.properties -i - sed '$a\RELEASE_STORE_PASSWORD=gedoor_legado' /opt/legado/gradle.properties -i - sed '$a\RELEASE_KEY_PASSWORD=gedoor_legado' /opt/legado/gradle.properties -i - sed "s/'.release'/'.releaseA'/" /opt/legado/app/build.gradle -i - sed 's/.release/.releaseA/g' /opt/legado/app/google-services.json -i - - name: Build with Gradle - run: | - cd /opt/legado - chmod +x gradlew - ./gradlew assembleRelease - - name : upload apk - uses: actions/upload-artifact@master - if: always() - with: - name: legado apk - path: /opt/legado/app/build/outputs/apk/app/release