diff --git a/.github/workflows/android_release.yml b/.github/workflows/android_release.yml index 467e024..d8be25a 100644 --- a/.github/workflows/android_release.yml +++ b/.github/workflows/android_release.yml @@ -15,6 +15,7 @@ defaults: env: SOURCE_DIR: ${{ github.workspace }} QT_VERSION: 5.15.2 + ARTIFACT: QGroundControl.aab jobs: build: @@ -90,6 +91,8 @@ jobs: - name: Build working-directory: ${{ runner.temp }}/shadow_build_dir + env: + ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} run: | if [ $GIT_BRANCH_NAME == "Stable*" ]; then echo "Stable build" && @@ -98,12 +101,19 @@ jobs: echo "Daily build" && export STABLE_OR_DAILY=DailyBuild; fi - qmake -r ${SOURCE_DIR}/qgroundcontrol.pro -spec android-clang CONFIG+=${STABLE_OR_DAILY} ANDROID_ABIS="armeabi-v7a arm64-v8a" - make -j2 apk + qmake -r ${SOURCE_DIR}/qgroundcontrol.pro -spec android-clang CONFIG+=installer CONFIG+=${STABLE_OR_DAILY} ANDROID_ABIS="armeabi-v7a arm64-v8a" + make -j2 aab - name: ccache post-run run: ccache -s + - name: Save artifact + uses: actions/upload-artifact@master + with: + if: github.event_name == 'push' + name: ${{ env.ARTIFACT }} + path: ${{ runner.temp }}/shadow_build_dir/package/${{ env.ARTIFACT }} + # Currently disabled since credentials are not working correctly - name: Upload to S3 Bucket if: ${{ false }} diff --git a/QGCCommon.pri b/QGCCommon.pri index a6adec4..4ed68be 100644 --- a/QGCCommon.pri +++ b/QGCCommon.pri @@ -68,7 +68,7 @@ linux { } else:equals(ANDROID_TARGET_ARCH, x86) { CONFIG += Androidx86Build DEFINES += __androidx86__ - message("Android Arm build") + message("Android x86 build") } else { error("Unsupported Android architecture: $${ANDROID_TARGET_ARCH}") } @@ -166,15 +166,18 @@ exists ($$PWD/.git) { message(GIT_DESCRIBE $${GIT_DESCRIBE}) - # determine if we're on a tag matching vX.Y.Z (stable release) - contains(GIT_DESCRIBE, v[0-9]+.[0-9]+.[0-9]+) { - # release version "vX.Y.Z" + # Pull the version info from the last annotated version tag + # Stable builds will be in the format v#.#.# + # Daily builds on master will be in format d#.#.# + contains(GIT_DESCRIBE, ^[vd][0-9]+.[0-9]+.[0-9]+.*) { + message( release version "vX.Y.Z") GIT_VERSION = $${GIT_DESCRIBE} VERSION = $$replace(GIT_DESCRIBE, "v", "") + VERSION = $$replace(GIT_DESCRIBE, "d", "") VERSION = $$replace(VERSION, "-", ".") VERSION = $$section(VERSION, ".", 0, 3) } else { - # development version "Development branch:sha date" + message(development version "Development branch:sha date") GIT_VERSION = "Development $${GIT_BRANCH}:$${GIT_HASH} $${GIT_TIME}" VERSION = 0.0.0 } @@ -194,6 +197,7 @@ exists ($$PWD/.git) { } AndroidBuild { + message(VERSION $${VERSION}) MAJOR_VERSION = $$section(VERSION, ".", 0, 0) MINOR_VERSION = $$section(VERSION, ".", 1, 1) PATCH_VERSION = $$section(VERSION, ".", 2, 2) @@ -225,10 +229,11 @@ AndroidBuild { DEV_VERSION = $$join(DEV_VERSION, "", "0") } + # Bitness is 66/34 instead of 64/32 in because of a required version number bump screw-up ages ago equals(ANDROID_TARGET_ARCH, arm64-v8a) { - ANDROID_BITNESS = 64 + ANDROID_BITNESS = 66 } else { - ANDROID_BITNESS = 32 + ANDROID_BITNESS = 34 } # Version code format: BBMIPPDDD (B=Bitness, I=Minor) diff --git a/QGCPostLinkInstaller.pri b/QGCPostLinkInstaller.pri index 5313dad..e67797d 100644 --- a/QGCPostLinkInstaller.pri +++ b/QGCPostLinkInstaller.pri @@ -56,16 +56,14 @@ installer { QMAKE_POST_LINK += && tar -cj --exclude='package' -f package/QGroundControl.tar.bz2 staging --transform 's/$${DESTDIR}/qgroundcontrol/' } AndroidBuild { - QMAKE_POST_LINK += && mkdir -p package - QMAKE_POST_LINK += && make apk_install_target INSTALL_ROOT=android-build/ - QMAKE_POST_LINK += && androiddeployqt --input android-libQGroundControl.so-deployment-settings.json --output android-build --deployment bundled --gradle --sign $${SOURCE_DIR}/android/android_release.keystore dagar --storepass $$(ANDROID_STOREPASS) - contains(QT_ARCH, arm) { - QGC_APK_BITNESS = "32" - } else:contains(QT_ARCH, arm64) { - QGC_APK_BITNESS = "64" + _ANDROID_KEYSTORE_PASSWORD = $$(ANDROID_KEYSTORE_PASSWORD) + isEmpty(_ANDROID_KEYSTORE_PASSWORD) { + message(Skipping androiddeployqt since keystore password is not available) } else { - QGC_APK_BITNESS = "" + QMAKE_POST_LINK += && mkdir -p package + QMAKE_POST_LINK += && make apk_install_target INSTALL_ROOT=android-build/ + QMAKE_POST_LINK += && androiddeployqt --verbose --input android-QGroundControl-deployment-settings.json --output android-build --release --aab --sign $${SOURCE_DIR}/android/android_release.keystore QGCAndroidKeyStore --storepass $$(ANDROID_KEYSTORE_PASSWORD) + QMAKE_POST_LINK += && cp android-build/build/outputs/bundle/release/android-build-release.aab package/QGroundControl.aab } - QMAKE_POST_LINK += && cp android-build/build/outputs/apk/android-build-release-signed.apk package/QGroundControl$${QGC_APK_BITNESS}.apk } } diff --git a/android/android_release.keystore b/android/android_release.keystore index a349ecf..0df2000 100644 Binary files a/android/android_release.keystore and b/android/android_release.keystore differ