From 32cbb698ee7cc53371a6a06388d30ca3ac32167d Mon Sep 17 00:00:00 2001 From: Dmitriy Karpushin Date: Mon, 16 Jan 2023 14:30:08 +0300 Subject: [PATCH] Support of apk signing for tag-deploy workflow --- .github/workflows/tag-deploy.yml | 29 ++++++++++++++++++++++++++++- deploy/build_android.sh | 21 ++------------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/.github/workflows/tag-deploy.yml b/.github/workflows/tag-deploy.yml index f14501f0..f9d869ab 100644 --- a/.github/workflows/tag-deploy.yml +++ b/.github/workflows/tag-deploy.yml @@ -97,6 +97,28 @@ jobs: distribution: 'temurin' java-version: '11' + - name: 'Getting keystore' + uses: actions/checkout@v3 + with: + repository: amnezia-vpn/amnezia-android-certificates + token: ${{ secrets.CERTS_ACCESS_TOKEN }} + + - name: 'Install Android Build Tools' + run: | + RUNNER_TMP_DIR=${{ runner.temp }} + + ANDROID_BUILD_TOOLS_VERSION=30.0.3 + + BUILD_TOOLS_UNZIP_PATH=$RUNNER_TMP_DIR/build-tools + BUILD_TOOLS_ARCHIVE=$RUNNER_TMP_DIR/build-tools.zip + + if [ ! -f $BUILD_TOOLS_UNZIP_PATH ]; then + wget http://dl.google.com/android/repository/build-tools_r${ANDROID_BUILD_TOOLS_VERSION}-linux.zip -qO $BUILD_TOOLS_ARCHIVE; + unzip -q -d $BUILD_TOOLS_UNZIP_PATH $BUILD_TOOLS_ARCHIVE; + fi + + export BUILD_TOOLS_PATH=$RUNNER_TMP_DIR/build-tools/android-11 + - name: 'Build project' run: | export QT_HOST_PATH="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/gcc_64" @@ -113,8 +135,13 @@ jobs: export QT_BIN_DIR=${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/android_arm64_v8a/bin bash deploy/build_android.sh + - name: 'Signing APK' + run: | + ${BUILD_TOOLS_PATH}/zipalign -f -v 4 AmneziaVPN-release-unsigned.apk AmneziaVPN-release-aligned.apk + ${BUILD_TOOLS_PATH}/apksigner sign --out AmneziaVPN-release-signed.apk --ks debug.keystore --ks-key-alias ${{ secrets.DEBUG_KEYSTORE_KEY_ALIAS }} --ks-pass pass:${{secrets.DEBUG_KEYSTOTE_KEY_PASS }} AmneziaVPN-release-aligned.apk + - name: 'Upload' uses: actions/upload-artifact@v3 with: name: Release APK - path: deploy/build/client/android-build/build/outputs/apk/release/android-build-release-unsigned.apk + path: ${{ runner.temp }}/AmneziaVPN-release-signed.apk diff --git a/deploy/build_android.sh b/deploy/build_android.sh index 9791abbb..0c994a86 100644 --- a/deploy/build_android.sh +++ b/deploy/build_android.sh @@ -20,12 +20,6 @@ APP_DOMAIN=org.amneziavpn.package OUT_APP_DIR=$BUILD_DIR/client BUNDLE_DIR=$OUT_APP_DIR/$APP_FILENAME -INSTALLER_DATA_DIR=$BUILD_DIR/installer/packages/$APP_DOMAIN/data -INSTALLER_BUNDLE_DIR=$BUILD_DIR/installer/$APP_FILENAME - -PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro -QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash - # Seacrh Qt if [ -z "${QT_VERSION+x}" ]; then QT_VERSION=5.15.2; @@ -36,10 +30,6 @@ echo "Using Qt in $QT_BIN_DIR" echo "Using Android SDK in $ANDROID_SDK_ROOT" echo "Using Android NDK in $ANDROID_NDK_ROOT" -# Checking env -# $QT_BIN_DIR/qmake -v -# $ANDROID_NDK_HOME/prebuilt/linux-x86_64/bin/make -v - # Build App echo "Building App..." cd $BUILD_DIR @@ -53,14 +43,7 @@ $QT_BIN_DIR/qt-cmake -S $PROJECT_DIR \ cmake --build . --config release -# $QT_BIN_DIR/qmake -r -spec android-clang CONFIG+=qtquickcompiler ANDROID_ABIS="armeabi-v7a arm64-v8a x86 x86_64" $PROJECT_DIR/AmneziaVPN.pro -# echo "Executing make... may take long time" -# $ANDROID_NDK_HOME/prebuilt/linux-x86_64/bin/make -j2 -# echo "Make install..." -# $ANDROID_NDK_HOME/prebuilt/linux-x86_64/bin/make install INSTALL_ROOT=android -# echo "Build OK" - -echo "............Deploy.................." +echo "............APK generation.................." cd $OUT_APP_DIR $QT_HOST_PATH/bin/androiddeployqt \ @@ -68,7 +51,7 @@ $QT_HOST_PATH/bin/androiddeployqt \ --gradle \ --release \ --input android-AmneziaVPN-deployment-settings.json - + echo "............Copy apk.................." cp $OUT_APP_DIR/android-build/build/outputs/apk/release/android-build-release-unsigned.apk \ $PROJECT_DIR/AmneziaVPN-release-unsigned.apk