diff --git a/cicd/stages/build.yml b/cicd/stages/build.yml index 1252eb822d690d20204107abdff70b8a2d7def98..33e7a36dfff924478f44130bea1718cdc6167d7f 100644 --- a/cicd/stages/build.yml +++ b/cicd/stages/build.yml @@ -1,5 +1,53 @@ # QDS_CI_BUILD_QT_VERSION_ANDROID and QDS_CI_BUILD_QT_VERSION_WASM are the tags for the docker images. # https://git.qt.io/design-studio/maintenance/docker-images/container_registry +.build-components: &build-components + - pushd 3rdparty/qtquickdesigner-components + - | + cmake \ + -S . \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE=${QDS_CI_JOB_QT_ANDROID_PATH}/lib/cmake/Qt6/qt.toolchain.cmake \ + -DANDROID_SDK_ROOT=${DOCKER_ENV_ANDROID_SDK_ROOT} \ + -DANDROID_NDK_ROOT=${DOCKER_ENV_ANDROID_NDK_ROOT} \ + -DQT_HOST_PATH=${DOCKER_ENV_QT_PATH_LINUX_GCC_64} \ + -DFLOWVIEW_AUTO_QMLDIR=ON \ + -DCMAKE_INSTALL_PREFIX=${QDS_CI_JOB_QT_ANDROID_PATH} + - cmake --build . + - cmake --install . + - popd + +.build-android-apps: &build-android-apps + - | + cmake \ + -S . \ + -B ${QDS_CI_JOB_BUILD_PATH} \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE=${QDS_CI_JOB_QT_ANDROID_PATH}/lib/cmake/Qt6/qt.toolchain.cmake \ + -DANDROID_SDK_ROOT=${DOCKER_ENV_ANDROID_SDK_ROOT} \ + -DANDROID_NDK_ROOT=${DOCKER_ENV_ANDROID_NDK_ROOT} \ + -DQT_HOST_PATH=${DOCKER_ENV_QT_PATH_LINUX_GCC_64} \ + -DCMAKE_INSTALL_PREFIX=${QDS_CI_JOB_QT_ANDROID_PATH} \ + -DANDROID_OPENSSL_PATH=${QDS_CI_JOB_OPENSSL_PATH} \ + -DBUILD_EXAMPLES=OFF + - cmake --build ${QDS_CI_JOB_BUILD_PATH} --target aab + +.copy-and-sign-apks: ©-and-sign-apks + - cp -r ${QDS_CI_JOB_BUILD_PATH}/src/android-build/build/outputs/apk/release/* ${QDS_CI_JOB_ARTIFACTS_PATH_APP} + - cp -r ${QDS_CI_JOB_BUILD_PATH}/tests/android-build/build/outputs/apk/release/* ${QDS_CI_JOB_ARTIFACTS_PATH_TEST} + - echo ${QDS_VAR_PASS} | ${DOCKER_ENV_ANDROID_SDK_ROOT}/build-tools/30.0.3/apksigner sign -verbose -ks ${CI_PROJECT_DIR}/cicd/android/android_release.keystore -out ${QDS_CI_JOB_ARTIFACTS_PATH_APP}/android-build-release.apk ${QDS_CI_JOB_ARTIFACTS_PATH_APP}/android-build-release-unsigned.apk + - echo ${QDS_VAR_PASS} | ${DOCKER_ENV_ANDROID_SDK_ROOT}/build-tools/30.0.3/apksigner sign -verbose -ks ${CI_PROJECT_DIR}/cicd/android/android_release.keystore -out ${QDS_CI_JOB_ARTIFACTS_PATH_TEST}/android-build-release.apk ${QDS_CI_JOB_ARTIFACTS_PATH_TEST}/android-build-release-unsigned.apk + - rm -f ${QDS_CI_JOB_ARTIFACTS_PATH_APP}/android-build-release-unsigned.apk ${QDS_CI_JOB_ARTIFACTS_PATH_TEST}/android-build-release-unsigned.apk + +.copy-and-sign-aab: ©-and-sign-aab + - | + if [[ -n ${CI_COMMIT_TAG} ]]; + then + cp -r ${QDS_CI_JOB_BUILD_PATH}/src/android-build/build/outputs/bundle/release/* ${QDS_CI_JOB_ARTIFACTS_PATH_APP} + /usr/bin/jarsigner -keystore ${CI_PROJECT_DIR}/cicd/android/android_release.keystore ${QDS_CI_JOB_ARTIFACTS_PATH_APP}/android-build-release.aab designviewer -storepass ${QDS_VAR_PASS} + fi + build-android: extends: .pipeline_common stage: build @@ -29,40 +77,8 @@ build-android: expire_in: 1 week script: - mkdir -p ${QDS_CI_JOB_ARTIFACTS_PATH_APP} ${QDS_CI_JOB_ARTIFACTS_PATH_TEST} - - ls -l ${QDS_CI_JOB_OPENSSL_PATH} - export QDS_CI_JOB_QT_ANDROID_PATH="${DOCKER_ENV_QT_PATH_WITH_VERSION}/android_${QDS_CI_JOB_TARGET_ARCH}" - - echo ${QDS_CI_JOB_QT_ANDROID_PATH}; ls -l ${QDS_CI_JOB_QT_ANDROID_PATH} - - pushd 3rdparty/qtquickdesigner-components - - export - - | - cmake \ - -S . \ - -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_TOOLCHAIN_FILE=${QDS_CI_JOB_QT_ANDROID_PATH}/lib/cmake/Qt6/qt.toolchain.cmake \ - -DANDROID_SDK_ROOT=${DOCKER_ENV_ANDROID_SDK_ROOT} \ - -DANDROID_NDK_ROOT=${DOCKER_ENV_ANDROID_NDK_ROOT} \ - -DQT_HOST_PATH=${DOCKER_ENV_QT_PATH_LINUX_GCC_64} \ - -DCMAKE_INSTALL_PREFIX=${QDS_CI_JOB_QT_ANDROID_PATH} - - cmake --build . - - cmake --install . - - popd - - | - cmake \ - -S . \ - -B ${QDS_CI_JOB_BUILD_PATH} \ - -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_TOOLCHAIN_FILE=${QDS_CI_JOB_QT_ANDROID_PATH}/lib/cmake/Qt6/qt.toolchain.cmake \ - -DANDROID_SDK_ROOT=${DOCKER_ENV_ANDROID_SDK_ROOT} \ - -DANDROID_NDK_ROOT=${DOCKER_ENV_ANDROID_NDK_ROOT} \ - -DQT_HOST_PATH=${DOCKER_ENV_QT_PATH_LINUX_GCC_64} \ - -DCMAKE_INSTALL_PREFIX=${QDS_CI_JOB_QT_ANDROID_PATH} \ - -DANDROID_OPENSSL_PATH=${QDS_CI_JOB_OPENSSL_PATH} \ - -DBUILD_EXAMPLES=OFF - - cmake --build ${QDS_CI_JOB_BUILD_PATH} --target all - - cp -r ${QDS_CI_JOB_BUILD_PATH}/src/android-build/build/outputs/apk/release/* ${QDS_CI_JOB_ARTIFACTS_PATH_APP} - - cp -r ${QDS_CI_JOB_BUILD_PATH}/tests/android-build/build/outputs/apk/release/* ${QDS_CI_JOB_ARTIFACTS_PATH_TEST} - - echo designviewer | ${DOCKER_ENV_ANDROID_SDK_ROOT}/build-tools/30.0.3/apksigner sign -verbose -ks ${CI_PROJECT_DIR}/cicd/android/android_release.keystore -out ${QDS_CI_JOB_ARTIFACTS_PATH_APP}/android-build-release.apk ${QDS_CI_JOB_ARTIFACTS_PATH_APP}/android-build-release-unsigned.apk - - echo designviewer | ${DOCKER_ENV_ANDROID_SDK_ROOT}/build-tools/30.0.3/apksigner sign -verbose -ks ${CI_PROJECT_DIR}/cicd/android/android_release.keystore -out ${QDS_CI_JOB_ARTIFACTS_PATH_TEST}/android-build-release.apk ${QDS_CI_JOB_ARTIFACTS_PATH_TEST}/android-build-release-unsigned.apk - - rm -f ${QDS_CI_JOB_ARTIFACTS_PATH_APP}/android-build-release-unsigned.apk ${QDS_CI_JOB_ARTIFACTS_PATH_TEST}/android-build-release-unsigned.apk + - *build-components + - *build-android-apps + - *copy-and-sign-apks + - *copy-and-sign-aab diff --git a/cicd/stages/test.yml b/cicd/stages/test.yml index 3b2cce353ca21ca31063770b3d4994a72a88a4b9..f77b55f0bc7237c376421691f652484f5de0e6c5 100644 --- a/cicd/stages/test.yml +++ b/cicd/stages/test.yml @@ -39,7 +39,7 @@ test-x86_64: counter=0 while [ -n "$(adb shell pidof -s io.qt.qtdesignviewer.test)" ]; do echo "Waiting for test to finish" - sleep 0.1 + sleep 1 counter=$((counter+1)) if [ $counter -gt 60 ]; then echo "Test did not finish in time" diff --git a/src/android/AndroidManifest.xml b/src/android/AndroidManifest.xml index 83728774ee9431377edb941334d9f52be796695d..11e9abfa49a21398815a343164c5090cdbe2e7e0 100644 --- a/src/android/AndroidManifest.xml +++ b/src/android/AndroidManifest.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.qt.qtdesignviewer" - android:installLocation="auto" android:versionCode="29" android:versionName="1.0.2"> + android:installLocation="auto" android:versionCode="30" android:versionName="1.0.3"> <!-- %%INSERT_PERMISSIONS --> <!-- %%INSERT_FEATURES --> <supports-screens android:anyDensity="true" android:largeScreens="true" diff --git a/src/backend/importdummy.qml b/src/backend/importdummy.qml index f0b1bc230de29f5643a4782b10cd9806d23627c3..cb75b90a43c052262c8814ef6a4cad3d2af710e6 100644 --- a/src/backend/importdummy.qml +++ b/src/backend/importdummy.qml @@ -29,7 +29,6 @@ import QtQuickUltralite.Extras import QtQuickUltralite.Layers import FlowView - import Qt.labs.folderlistmodel import QtWebSockets diff --git a/src/ui/main.qml b/src/ui/main.qml index bd782663f6485d7ae737c616f32cf57d0750d7e5..91ed8c535874590e5903dfe618e17f91cf3f5554 100644 --- a/src/ui/main.qml +++ b/src/ui/main.qml @@ -219,7 +219,7 @@ Rectangle { Layout.fillWidth: true checkable: true autoExclusive: true - visible: false; + visible: false onClicked: { stackLayout.currentIndex = 3 drawer.close()