diff options
-rw-r--r-- | .github/actions/download-qt/action.yml | 2 | ||||
-rw-r--r-- | .github/workflows/main.yml | 44 | ||||
-rwxr-xr-x | scripts/test-qt.sh | 53 |
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 |