aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-02-21 20:56:21 +0100
committerIvan Komissarov <ABBAPOH@gmail.com>2021-03-19 12:12:56 +0000
commitb78eb86d6319fda6f78ab94f45ab76084f958a74 (patch)
tree2ab160831d21ce1db634224c16b07aa44396ace2
parent49ace4593124456fb066a3eaee83fcbf16b1b804 (diff)
GitHub actions: Run tests with Qt6
On MacOS, Linux and Windows with Qt 6.0.2. Change-Id: I12255d8ba5bb5277378d52a1cc5caca84f0dc98b Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r--.github/actions/download-qt/action.yml2
-rw-r--r--.github/workflows/main.yml44
-rwxr-xr-xscripts/test-qt.sh53
3 files changed, 96 insertions, 3 deletions
diff --git a/.github/actions/download-qt/action.yml b/.github/actions/download-qt/action.yml
index 47866e0d9..e27358125 100644
--- a/.github/actions/download-qt/action.yml
+++ b/.github/actions/download-qt/action.yml
@@ -17,6 +17,6 @@ runs:
steps:
- name: Install Qt
run: |
- QT_DIR=$(./scripts/install-qt.sh -d $HOME/Qt --version ${{ inputs.version }} --target ${{ inputs.target }} --toolchain ${{ inputs.toolchain }} qtbase qtdeclarative qttools qtscript qtscxml)
+ QT_DIR=$(./scripts/install-qt.sh -d $HOME/Qt --version ${{ inputs.version }} --target ${{ inputs.target }} --toolchain ${{ inputs.toolchain }} qtbase qtdeclarative qttools qtscript qtscxml qt5compat)
(cygpath -w ${QTC_DIR} 2>/dev/null || echo ${QT_DIR}) >> ${GITHUB_PATH}
shell: bash
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index e702573a0..bd45dfcb9 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -240,6 +240,12 @@ jobs:
script: './scripts/test-qbs.sh',
}
- {
+ name: 'Run Linux tests (gcc, Qt 6.0)',
+ image: 'focal-qt6',
+ profile: 'qt-gcc_64',
+ script: './scripts/test-qt.sh',
+ }
+ - {
name: 'Run Android tests (Qt 5.13)',
image: 'focal-android-513',
profile: '',
@@ -335,33 +341,53 @@ jobs:
target: 'desktop',
toolchain: 'clang_64',
testProfile: 'xcode_12_4-macosx-x86_64',
+ qtVersion: '5.15.2',
+ script: './scripts/test-qbs.sh',
+ }
+ - {
+ name: 'Run macOS tests (Xcode 12.4, Qt 6.0)',
+ target: 'desktop',
+ toolchain: 'clang_64',
+ testProfile: 'xcode_12_4-macosx-x86_64',
+ qtVersion: '6.0.2',
+ script: './scripts/test-qt.sh',
}
- {
name: 'Run macOS tests (Xcode 11.6)',
target: 'desktop',
toolchain: 'clang_64',
testProfile: 'xcode_11_6-macosx-x86_64',
+ qtVersion: '5.15.2',
+ script: './scripts/test-qbs.sh',
}
- {
name: 'Run macOS tests (Xcode 10.3)',
target: 'desktop',
toolchain: 'clang_64',
testProfile: 'xcode_10_3-macosx-x86_64',
+ qtVersion: '5.15.2',
+ script: './scripts/test-qbs.sh',
}
- {
name: 'Run iOS tests (Xcode 12.0)',
target: 'ios',
toolchain: 'ios',
testProfile: 'xcode_12-iphoneos-arm64',
+ qtVersion: '5.15.2',
+ script: './scripts/test-qbs.sh',
}
- {
name: 'Run iOS-sim tests (Xcode 12.0)',
target: 'ios',
toolchain: 'ios',
testProfile: 'xcode_12-iphonesimulator-x86_64',
+ qtVersion: '5.15.2',
+ script: './scripts/test-qbs.sh',
}
steps:
- uses: actions/checkout@v1
+ with:
+ submodules: true
- name: Download artifact
uses: actions/download-artifact@v1
with:
@@ -378,6 +404,7 @@ jobs:
with:
target: ${{ matrix.config.target }}
toolchain: ${{ matrix.config.toolchain }}
+ version: ${{ matrix.config.qtVersion }}
- name: Setup Qbs
run: |
qbs setup-toolchains --detect
@@ -389,7 +416,7 @@ jobs:
run: |
sudo chmod g+w /cores
ulimit -c unlimited
- ./scripts/test-qbs.sh ./release/install-root/usr/local/bin
+ ${{ matrix.config.script }} ./release/install-root/usr/local/bin
- name: Coredump on failure
if: ${{ failure() }}
run: |
@@ -411,12 +438,24 @@ jobs:
target: 'desktop',
toolchain: 'win64_msvc2019_64',
testProfile: 'MSVC2019-x64',
+ qtVersion: '5.15.2',
+ script: './scripts/test-qbs.sh',
+ }
+ - {
+ name: 'Run Windows tests (MSVC 2019, Qt 6.0.2)',
+ target: 'desktop',
+ toolchain: 'win64_msvc2019_64',
+ testProfile: 'MSVC2019-x64',
+ qtVersion: '6.0.2',
+ script: './scripts/test-qt.sh',
}
- {
name: 'Run Windows tests (clang-cl)',
target: 'desktop',
toolchain: 'win64_msvc2019_64',
testProfile: 'clang-cl-x86_64',
+ qtVersion: '5.15.2',
+ script: './scripts/test-qbs.sh',
}
env:
QTEST_FUNCTION_TIMEOUT: 9000000
@@ -444,6 +483,7 @@ jobs:
uses: ./.github/actions/download-qt
with:
toolchain: ${{ matrix.config.toolchain }}
+ version: ${{ matrix.config.qtVersion }}
- name: Setup Qbs
run: |
qbs setup-toolchains --detect
@@ -453,5 +493,5 @@ jobs:
qbs config --list
shell: bash
- name: Run Tests
- run: ./scripts/test-qbs.sh ./release/install-root/bin
+ run: ${{ matrix.config.script }} ./release/install-root/bin
shell: bash
diff --git a/scripts/test-qt.sh b/scripts/test-qt.sh
new file mode 100755
index 000000000..944d8941d
--- /dev/null
+++ b/scripts/test-qt.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+#############################################################################
+##
+## Copyright (C) 2021 Ivan Komissarov <abbapoh@gmail.com>
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of Qbs.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -eu
+
+#
+# Qbs is built with the address sanitizer enabled.
+# Suppress findings in some parts of Qbs / dependencies.
+#
+export LSAN_OPTIONS="suppressions=$( cd "$(dirname "$0")" ; pwd -P )/address-sanitizer-suppressions.txt:print_suppressions=0"
+
+export PATH="$1:$PATH"
+
+export QBS_AUTOTEST_PROFILE=${QBS_AUTOTEST_PROFILE:-qt}
+
+tst_blackbox-qt