Skip to content
Snippets Groups Projects
Unverified Commit 442fe7f0 authored by Burak Hançerli's avatar Burak Hançerli :headphones:
Browse files

Merge branch 'v1_support'

parents 381e571e 34715a05
No related branches found
No related tags found
No related merge requests found
# QDS_CI_BUILD_QT_VERSION_ANDROID and QDS_CI_BUILD_QT_VERSION_WASM are the tags for the docker images. # 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 # 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: &copy-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: &copy-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: build-android:
extends: .pipeline_common extends: .pipeline_common
stage: build stage: build
...@@ -18,50 +66,19 @@ build-android: ...@@ -18,50 +66,19 @@ build-android:
variables: variables:
QDS_CI_JOB_BUILD_PATH: "${QDS_CI_CACHE_PATH}/${QDS_CI_JOB_TARGET_ARCH}/build" QDS_CI_JOB_BUILD_PATH: "${QDS_CI_CACHE_PATH}/${QDS_CI_JOB_TARGET_ARCH}/build"
QDS_CI_JOB_TARGET_PLATFORM: "android" QDS_CI_JOB_TARGET_PLATFORM: "android"
QDS_CI_JOB_ARTIFACTS_PATH: ${QDS_CI_ARTIFACTS_PATH}/${QDS_CI_JOB_TARGET_PLATFORM}/${QDS_CI_JOB_TARGET_ARCH} QDS_CI_JOB_ARTIFACTS_PATH: ${QDS_CI_ARTIFACTS_PATH}/${QDS_CI_JOB_TARGET_ARCH}
QDS_CI_JOB_ARTIFACTS_PATH_APP: ${QDS_CI_JOB_ARTIFACTS_PATH}/app QDS_CI_JOB_ARTIFACTS_PATH_APP: ${QDS_CI_JOB_ARTIFACTS_PATH}/app
QDS_CI_JOB_ARTIFACTS_PATH_TEST: ${QDS_CI_JOB_ARTIFACTS_PATH}/test QDS_CI_JOB_ARTIFACTS_PATH_TEST: ${QDS_CI_JOB_ARTIFACTS_PATH}/test
QDS_CI_JOB_QT_ANDROID_PATH: "${QDS_CI_QT_PATH}/${QDS_CI_QT_VERSION}/${QDS_CI_JOB_TARGET_PLATFORM}_${QDS_CI_JOB_TARGET_ARCH}"
artifacts: artifacts:
name: design-viewer-${CI_JOB_ID}-qt${QDS_CI_QT_VERSION}-${QDS_CI_JOB_TARGET_PLATFORM}-${QDS_CI_JOB_TARGET_ARCH} name: qt_ui_viewer-${CI_JOB_ID}-qt${QDS_CI_QT_VERSION}-${QDS_CI_JOB_TARGET_ARCH}
expose_as: "build-artifacts" expose_as: "build-artifacts"
paths: paths:
- ${QDS_CI_ARTIFACTS_PATH} - ${QDS_CI_ARTIFACTS_PATH}
expire_in: 1 week
script: script:
- mkdir -p ${QDS_CI_JOB_ARTIFACTS_PATH_APP} ${QDS_CI_JOB_ARTIFACTS_PATH_TEST} - 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}"
- pushd 3rdparty/qtquickdesigner-components - *build-components
- export - *build-android-apps
- | - *copy-and-sign-apks
cmake \ - *copy-and-sign-aab
-S . \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=${DOCKER_ENV_QT_PATH_WITH_VERSION}/${QDS_CI_JOB_TARGET_PLATFORM}_${QDS_CI_JOB_TARGET_ARCH}/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} \
-DFLOWVIEW_AUTO_QMLDIR=ON
- cmake --build .
- cmake --install .
- popd
- |
cmake \
-S . \
-B ${QDS_CI_JOB_BUILD_PATH} \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=${DOCKER_ENV_QT_PATH_WITH_VERSION}/${QDS_CI_JOB_TARGET_PLATFORM}_${QDS_CI_JOB_TARGET_ARCH}/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
...@@ -8,27 +8,29 @@ create-packages: ...@@ -8,27 +8,29 @@ create-packages:
- job: test-x86_64 - job: test-x86_64
optional: false optional: false
artifacts: true artifacts: true
- job: build-android
optional: false
artifacts: true
variables: variables:
QDS_PACKAGE_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/qt-ui-viewer/${CI_COMMIT_TAG}" QDS_PACKAGE_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/qt-ui-viewer/${CI_COMMIT_TAG}"
GIT_SUBMODULE_STRATEGY: none
script: script:
- apk add tar curl - apk add tar curl
- cd ${QDS_CI_ARTIFACTS_PATH_APP} - echo ${QDS_CI_ARTIFACTS_PATH}; ls -l ${QDS_CI_ARTIFACTS_PATH}
- ls -l ${QDS_CI_ARTIFACTS_PATH}/*
- cd ${QDS_CI_ARTIFACTS_PATH}
- | - |
for platform in $(ls); do for arch in $(ls); do
echo "Creating packages for platform $platform" echo "Running for ${arch}. Compressing..."
cd "$platform" # app folder contains the apk for the app
for arch in $(ls); do # test folder contains the apk for the tests
echo "Running for $platform-$arch. Compressing..." # we only need to compress the app folder
# app folder contains the apk for the app current_dir=$(pwd)
# test folder contains the apk for the tests cd "${arch}/app"
# we only need to compress the app folder tar -czf "${arch}.tar.gz" *
cd "$arch/app" echo "Uploading ${arch}.tar.gz to GitLab Package Registry"
tar -czf "$platform-$arch.tar.gz" * curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "${arch}.tar.gz" ${QDS_PACKAGE_URL}/qt-ui-viewer-${CI_COMMIT_TAG}-qt${QDS_CI_QT_VERSION}-${arch}.tar.gz
echo "Uploading $platform-$arch.tar.gz to GitLab Package Registry" cd ${current_dir}
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "${platform}-${arch}.tar.gz" ${QDS_PACKAGE_URL}/qt-ui-viewer-${CI_COMMIT_TAG}-qt${QDS_CI_QT_VERSION}-${platform}-${arch}.tar.gz
cd ..
done
cd ..
done done
artifacts: artifacts:
name: qt-ui-viewer-${CI_JOB_ID}-qt${QDS_CI_QT_VERSION} name: qt-ui-viewer-${CI_JOB_ID}-qt${QDS_CI_QT_VERSION}
...@@ -50,6 +52,7 @@ create-release: ...@@ -50,6 +52,7 @@ create-release:
QDS_PACKAGE_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/qt-ui-viewer/${CI_COMMIT_TAG}" QDS_PACKAGE_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/qt-ui-viewer/${CI_COMMIT_TAG}"
QDS_RELEASE_NAME: "Qt UI Viewer - ${CI_COMMIT_TAG}" QDS_RELEASE_NAME: "Qt UI Viewer - ${CI_COMMIT_TAG}"
QDS_RELEASE_DESCRIPTION: "This version is built with Qt-${QDS_CI_QT_VERSION}." QDS_RELEASE_DESCRIPTION: "This version is built with Qt-${QDS_CI_QT_VERSION}."
GIT_SUBMODULE_STRATEGY: none
release: release:
name: ${QDS_RELEASE_NAME} name: ${QDS_RELEASE_NAME}
description: ${QDS_RELEASE_DESCRIPTION} description: ${QDS_RELEASE_DESCRIPTION}
......
...@@ -17,14 +17,14 @@ test-x86_64: ...@@ -17,14 +17,14 @@ test-x86_64:
export PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/ export PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/
export PATH=$PATH:${ANDROID_SDK_ROOT}/emulator export PATH=$PATH:${ANDROID_SDK_ROOT}/emulator
export PATH=$PATH:${ANDROID_SDK_ROOT}/platform-tools export PATH=$PATH:${ANDROID_SDK_ROOT}/platform-tools
- cd ${QDS_CI_ARTIFACTS_PATH}/android/x86_64/test || exit 1 - cd ${QDS_CI_ARTIFACTS_PATH}/x86_64/test || exit 1
- mkdir -p ${QDS_CI_JOB_TEST_RESULTS_PATH} - mkdir -p ${QDS_CI_JOB_TEST_RESULTS_PATH}
- adb install -r -g android-build-release.apk - adb install -r -g android-build-release.apk
- adb shell "run-as io.qt.qtuiviewer.test rm -rf /data/data/io.qt.qtuiviewer.test/files/output.junitxml" - adb shell "run-as io.qt.qtdesignviewer.test rm -rf /data/data/io.qt.qtdesignviewer.test/files/output.junitxml"
- adb shell am start -e applicationArguments "'-o output.junitxml,junitxml'" -n io.qt.qtuiviewer.test/org.qtproject.qt.android.bindings.QtActivity - adb shell am start -e applicationArguments "'-o output.junitxml,junitxml'" -n io.qt.qtdesignviewer.test/org.qtproject.qt.android.bindings.QtActivity
- | - |
counter=0 counter=0
while [ -z "$(adb shell pidof -s io.qt.qtuiviewer.test)" ]; do while [ -z "$(adb shell pidof -s io.qt.qtdesignviewer.test)" ]; do
echo "Waiting for test to start" echo "Waiting for test to start"
sleep 0.1 sleep 0.1
counter=$((counter+1)) counter=$((counter+1))
...@@ -33,12 +33,12 @@ test-x86_64: ...@@ -33,12 +33,12 @@ test-x86_64:
exit 1 exit 1
fi fi
done done
- PID_OF_TEST=$(adb shell pidof -s io.qt.qtuiviewer.test) - PID_OF_TEST=$(adb shell pidof -s io.qt.qtdesignviewer.test)
- 'echo "PID of test: ${PID_OF_TEST}"' - 'echo "PID of test: ${PID_OF_TEST}"'
- | - |
counter=0 counter=0
while [ -n "$(adb shell pidof -s io.qt.qtuiviewer.test)" ]; do while [ -n "$(adb shell pidof -s io.qt.qtdesignviewer.test)" ]; do
echo "Waiting for test to finish with PID ${PID_OF_TEST}" echo "Waiting for test to finish"
sleep 1 sleep 1
counter=$((counter+1)) counter=$((counter+1))
if [ $counter -gt 180 ]; then if [ $counter -gt 180 ]; then
...@@ -47,8 +47,8 @@ test-x86_64: ...@@ -47,8 +47,8 @@ test-x86_64:
fi fi
done done
- adb logcat -d --pid=${PID_OF_TEST} > ${QDS_CI_JOB_TEST_RESULTS_PATH}/logcat.txt - adb logcat -d --pid=${PID_OF_TEST} > ${QDS_CI_JOB_TEST_RESULTS_PATH}/logcat.txt
- adb shell "run-as io.qt.qtuiviewer.test cat /data/data/io.qt.qtuiviewer.test/files/output.junitxml" > output.junit.xml - adb shell "run-as io.qt.qtdesignviewer.test cat /data/data/io.qt.qtdesignviewer.test/files/output.junitxml" > output.junit.xml
- adb uninstall io.qt.qtuiviewer.test - adb uninstall io.qt.qtdesignviewer.test
- mv output.junit.xml ${QDS_CI_JOB_TEST_RESULTS_PATH}/test.junit.xml - mv output.junit.xml ${QDS_CI_JOB_TEST_RESULTS_PATH}/test.junit.xml
- chmod +x ${CI_PROJECT_DIR}/tests/scripts/get_test_result.sh - chmod +x ${CI_PROJECT_DIR}/tests/scripts/get_test_result.sh
- ${CI_PROJECT_DIR}/tests/scripts/get_test_result.sh ${QDS_CI_JOB_TEST_RESULTS_PATH}/test.junit.xml - ${CI_PROJECT_DIR}/tests/scripts/get_test_result.sh ${QDS_CI_JOB_TEST_RESULTS_PATH}/test.junit.xml
......
...@@ -29,7 +29,6 @@ import QtQuickUltralite.Extras ...@@ -29,7 +29,6 @@ import QtQuickUltralite.Extras
import QtQuickUltralite.Layers import QtQuickUltralite.Layers
import FlowView import FlowView
import Qt.labs.folderlistmodel import Qt.labs.folderlistmodel
import QtWebSockets import QtWebSockets
......
...@@ -216,7 +216,7 @@ Rectangle { ...@@ -216,7 +216,7 @@ Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
checkable: true checkable: true
autoExclusive: true autoExclusive: true
visible: false; visible: false
onClicked: { onClicked: {
stackLayout.currentIndex = 3 stackLayout.currentIndex = 3
drawer.close() drawer.close()
......
<?xml version="1.0"?> <?xml version="1.0"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.qt.qtuiviewer.test" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.qt.qtdesignviewer.test"
android:installLocation="auto" android:versionCode="1" android:versionName="1"> android:installLocation="auto" android:versionCode="1" android:versionName="1">
<!-- %%INSERT_PERMISSIONS --> <!-- %%INSERT_PERMISSIONS -->
<!-- %%INSERT_FEATURES --> <!-- %%INSERT_FEATURES -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment