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.
# 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:
extends: .pipeline_common
stage: build
......@@ -18,50 +66,19 @@ build-android:
variables:
QDS_CI_JOB_BUILD_PATH: "${QDS_CI_CACHE_PATH}/${QDS_CI_JOB_TARGET_ARCH}/build"
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_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:
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"
paths:
- ${QDS_CI_ARTIFACTS_PATH}
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}
- pushd 3rdparty/qtquickdesigner-components
- export
- |
cmake \
-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
- export QDS_CI_JOB_QT_ANDROID_PATH="${DOCKER_ENV_QT_PATH_WITH_VERSION}/android_${QDS_CI_JOB_TARGET_ARCH}"
- *build-components
- *build-android-apps
- *copy-and-sign-apks
- *copy-and-sign-aab
......@@ -8,27 +8,29 @@ create-packages:
- job: test-x86_64
optional: false
artifacts: true
- job: build-android
optional: false
artifacts: true
variables:
QDS_PACKAGE_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/qt-ui-viewer/${CI_COMMIT_TAG}"
GIT_SUBMODULE_STRATEGY: none
script:
- 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
echo "Creating packages for platform $platform"
cd "$platform"
for arch in $(ls); do
echo "Running for $platform-$arch. Compressing..."
# app folder contains the apk for the app
# test folder contains the apk for the tests
# we only need to compress the app folder
cd "$arch/app"
tar -czf "$platform-$arch.tar.gz" *
echo "Uploading $platform-$arch.tar.gz to GitLab Package Registry"
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 ..
for arch in $(ls); do
echo "Running for ${arch}. Compressing..."
# app folder contains the apk for the app
# test folder contains the apk for the tests
# we only need to compress the app folder
current_dir=$(pwd)
cd "${arch}/app"
tar -czf "${arch}.tar.gz" *
echo "Uploading ${arch}.tar.gz to GitLab Package Registry"
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
cd ${current_dir}
done
artifacts:
name: qt-ui-viewer-${CI_JOB_ID}-qt${QDS_CI_QT_VERSION}
......@@ -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_RELEASE_NAME: "Qt UI Viewer - ${CI_COMMIT_TAG}"
QDS_RELEASE_DESCRIPTION: "This version is built with Qt-${QDS_CI_QT_VERSION}."
GIT_SUBMODULE_STRATEGY: none
release:
name: ${QDS_RELEASE_NAME}
description: ${QDS_RELEASE_DESCRIPTION}
......
......@@ -17,14 +17,14 @@ test-x86_64:
export PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/
export PATH=$PATH:${ANDROID_SDK_ROOT}/emulator
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}
- 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 am start -e applicationArguments "'-o output.junitxml,junitxml'" -n io.qt.qtuiviewer.test/org.qtproject.qt.android.bindings.QtActivity
- 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.qtdesignviewer.test/org.qtproject.qt.android.bindings.QtActivity
- |
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"
sleep 0.1
counter=$((counter+1))
......@@ -33,12 +33,12 @@ test-x86_64:
exit 1
fi
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}"'
- |
counter=0
while [ -n "$(adb shell pidof -s io.qt.qtuiviewer.test)" ]; do
echo "Waiting for test to finish with PID ${PID_OF_TEST}"
while [ -n "$(adb shell pidof -s io.qt.qtdesignviewer.test)" ]; do
echo "Waiting for test to finish"
sleep 1
counter=$((counter+1))
if [ $counter -gt 180 ]; then
......@@ -47,8 +47,8 @@ test-x86_64:
fi
done
- 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 uninstall io.qt.qtuiviewer.test
- 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.qtdesignviewer.test
- mv output.junit.xml ${QDS_CI_JOB_TEST_RESULTS_PATH}/test.junit.xml
- 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
......
......@@ -29,7 +29,6 @@ import QtQuickUltralite.Extras
import QtQuickUltralite.Layers
import FlowView
import Qt.labs.folderlistmodel
import QtWebSockets
......
......@@ -216,7 +216,7 @@ Rectangle {
Layout.fillWidth: true
checkable: true
autoExclusive: true
visible: false;
visible: false
onClicked: {
stackLayout.currentIndex = 3
drawer.close()
......
<?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">
<!-- %%INSERT_PERMISSIONS -->
<!-- %%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