diff --git a/.github/decrypt_secrets.sh b/.github/decrypt_secrets.sh new file mode 100644 index 000000000..289d3ffbe --- /dev/null +++ b/.github/decrypt_secrets.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +gpg --quiet --batch --yes --decrypt --passphrase="$SECRETS_GPG_PASS" --output .github/secrets.tar .github/secrets.tar.gpg +tar xvf .github/secrets.tar -C .github \ No newline at end of file diff --git a/.github/secrets.tar.gpg b/.github/secrets.tar.gpg new file mode 100644 index 000000000..e515bf6ac Binary files /dev/null and b/.github/secrets.tar.gpg differ diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 000000000..1dc460756 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,59 @@ +name: Android CI + +on: + push: + branches: [ master ] + tags: + - 'v*' + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Grant execute permission to scripts + run: chmod +x gradlew .github/decrypt_secrets.sh + - name: Decrypt GPG secrets + run: .github/decrypt_secrets.sh + env: + SECRETS_GPG_PASS: ${{ secrets.SECRETS_GPG_PASS }} + - name: Build with Gradle + if: ${{ !startsWith(github.ref, 'refs/tags/v') }} + run: ./gradlew connectedCheck --no-daemon + - name: Publish with Gradle + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + run: ./gradlew assembleRelease publish --no-daemon + env: + KEYSTORE_STORE_PASS: ${{ secrets.KEYSTORE_STORE_PASS }} + KEYSTORE_KEY_ALIAS: gianlu + KEYSTORE_KEY_PASS: ${{ secrets.KEYSTORE_KEY_PASS }} + - name: Create release + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + body_path: app/src/main/play/release-notes/en-GB/production.txt + draft: true + prerelease: false + - name: Upload APK file + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: app/build/outputs/apk/foss/release/app-foss-release.apk + asset_name: app-foss-release.apk + asset_content_type: application/vnd.android.package-archive \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7ab571e27..cabd7b9ca 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,4 @@ local.properties /app/build captures Thumbs.db -/app/**/release/ -google-services.json -!/app/src/foss/google-services.json \ No newline at end of file +/app/**/release/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c8f268cc3..000000000 --- a/.travis.yml +++ /dev/null @@ -1,41 +0,0 @@ -language: android -android: - components: - - platform-tools - - build-tools-29.0.3 - - android-29 - - extra-google-google_play_services - -before_install: - - openssl aes-256-cbc -K $encrypted_b3524f6cef01_key -iv $encrypted_b3524f6cef01_iv - -in .travis/secrets.tar.enc -out .travis/secrets.tar -d - - tar xvf .travis/secrets.tar -C .travis - - chmod +x gradlew .travis/*.sh - - cp .travis/google-services.json app - -script: - - .travis/build.sh - -before_deploy: - - export RELEASE_NOTES=$(cat app/src/main/play/release-notes/en-GB/production.txt) - - export RELEASE_NAME=$(./gradlew -q :app:printVersionName) - - export APK_FILE=app/build/outputs/apk/foss/release/app-foss-release.apk - -deploy: - - provider: script - script: ./.travis/github-release.sh - skip_cleanup: true - on: - repo: devgianlu/Aria2App - branch: master - tags: true - -before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ - -cache: - directories: - - "$HOME/.gradle/caches/" - - "$HOME/.gradle/wrapper/" - - "$HOME/.android/build-cache" diff --git a/.travis/build.sh b/.travis/build.sh deleted file mode 100644 index 0ba821a59..000000000 --- a/.travis/build.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -ev - -if [[ -z "${TRAVIS_TAG}" ]]; then - ./gradlew assembleDebug connectedCheck -else - ./gradlew assembleRelease publish -fi \ No newline at end of file diff --git a/.travis/github-release.sh b/.travis/github-release.sh deleted file mode 100644 index bb0b6999d..000000000 --- a/.travis/github-release.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -set -ev - -# Download and extract aktau/github-release -curl https://github.com/aktau/github-release/releases/download/v0.7.2/linux-amd64-github-release.tar.bz2 -L --output linux-amd64-github-release.tar.bz2 -tar -xvf linux-amd64-github-release.tar.bz2 -mv ./bin/linux/amd64/github-release ./github-release-bin -chmod +x github-release-bin - -# Split repo slug into owner and name -IFS=/ read REPO_USER REPO_NAME <<< $TRAVIS_REPO_SLUG - -echo $REPO_USER - -# Create release -./github-release-bin release -s "${GITHUB_OAUTH_TOKEN}" -u "${REPO_USER}" -r "${REPO_NAME}" -t "${TRAVIS_TAG}" -n "${RELEASE_NAME}" -d "${RELEASE_NOTES}" --draft - -# Upload APK file -./github-release-bin upload -s "${GITHUB_OAUTH_TOKEN}" -u "${REPO_USER}" -r "${REPO_NAME}" -t "${TRAVIS_TAG}" -n "app-foss-release.apk" -f "${APK_FILE}" -R diff --git a/.travis/secrets.tar.enc b/.travis/secrets.tar.enc deleted file mode 100644 index 96666fda5..000000000 Binary files a/.travis/secrets.tar.enc and /dev/null differ diff --git a/CommonUtils b/CommonUtils index 3ebeb90ee..b5a5587cc 160000 --- a/CommonUtils +++ b/CommonUtils @@ -1 +1 @@ -Subproject commit 3ebeb90eef97c8baedb80972633168195733abdc +Subproject commit b5a5587cc2b53857006324e1ac0a653f8ccd19a7 diff --git a/app/src/standard/google-services.json b/app/src/standard/google-services.json new file mode 100644 index 000000000..860fe37d4 --- /dev/null +++ b/app/src/standard/google-services.json @@ -0,0 +1,40 @@ +{ + "project_info": { + "project_number": "224100428237", + "firebase_url": "https://aria2app-android.firebaseio.com", + "project_id": "aria2app-android", + "storage_bucket": "aria2app-android.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:224100428237:android:af6ff887b27c8100177c84", + "android_client_info": { + "package_name": "com.gianlu.aria2app" + } + }, + "oauth_client": [ + { + "client_id": "224100428237-6ju7ske3ii9pj886psj2h3tipm470jko.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBNfaEjfRWN0UoIdUxcFxaXAQ0cldOj5Jk" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "224100428237-6ju7ske3ii9pj886psj2h3tipm470jko.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file