Enables WOA test running in webengine. Which is unable to
build the native WOA target.
Add 'fake' configure argument -corss-compiled to
so test instruction on native windows arm have
a chance to bailout (qquickeffect maker is never
cross-compiled)
Task-number: COIN-1211
Change-Id: Ie920f65f9ec260c0c1a7111e495fd9a86adee5f6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
In the provisioning script 'install-ffmpeg-macos.sh', we have a variable
'prefix' controlling where to install the finalized library. The value
of this prefix is sometimes hardcoded into some of the temporary build
directories, making the script break if we actually modify the 'prefix'
variable. This means we currently cannot easily change the output directory.
This patch modifies 'install-ffmpeg-macos.sh' so that the 'prefix' is
applied consistently throughout the script, allowing us to change
the output directory in the future.
Pick-to: 6.9 6.8
Change-Id: Id0b1bb23513b7bccf02f0c4073e4177f651792dd
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This is needed for building cmdbridge for remote Linux support
in Qt Creator. This got lost for Linux/ARM prebuilt packages for
Qt Creator when moving from Debian/ARM to Ubuntu24/ARM.
Task-number: QTCREATORBUG-32928
Pick-to: 6.9 6.8
Change-Id: Ic993eaadacec21882e1e2f1b6e0d73bc4ffbf6d4
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Add a new nightly platform configuration to run qt5.git RunCMake
tests.
Currently this will test the init-repository script, and will also
attempt to build and install Qt in various configurations that
developers use locally.
Change-Id: I74e0befc76ef0702c9036d30c85b8cf16b0b98a3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Coin CI only tests 'prefix' builds of Qt, because that's what we use
for packaging.
But many developers configure and build Qt in various ways which are
not covered by tests.
Introduce a new suite of RunCMake tests that configure and build Qt
in all the different permutations that we know people use.
This includes various combinations of:
- prefix vs no-prefix
- out-of-source vs in-source
- per-repo vs top-level
- building tests and examples in-tree vs out-of-tree
- building examples as in-tree vs external projects
- building more than one repo
The aim is to run all or some subset of these tests in a nightly Coin
CI run.
It can also be a useful way to test "risky" unmerged changes in an
automated way, instead of manually doing the various builds.
The current default set of repos that are built are:
qtbase, qtshadertools and qtdeclarative.
The submodules that are built can be controlled by setting various
cmake or env vars when configuring or running the test:
- QT_CI_BUILD_QT_SYNC_MODULE - the main repo that should be checked
out. Its dependencies will also be checked out, based on its
dependencies.yaml info.
- QT_CI_BUILD_QT_PIN_GIT_REF - the git sha1 or ref of the main repo
that should be checked out
- QT_CI_BUILD_QT_SKIP_SUBMODULES - a list of submodules that should be
skipped, can be useful to skip optional dependencies
- QT_CI_BUILD_QT_EXTRA_CHECKOUT_CHANGES - a list of gerrit commit
sha1s or refs for each submodule to be checked out to specifically.
- QT_CI_BUILD_QT_EXTRA_CHERRYPICK_CHANGES - a list of gerrit commit
sha1s or refs to be cherry-picked on top of whatever commits the
submodules were synced to.
- QT_CI_BUILD_QT_FILTER - a list of filters to include or exclude
test cases to run.
Sample usage:
mkdir build && cd build
cmake ~/qt5/tests/manual/RunCMake
# Run regular tests
ctest -V -R RunCMake.ConfigureBuildQt
# Skip some optional submodules of qtdeclarative
export QT_CI_BUILD_QT_SYNC_MODULE=qtdeclarative
export QT_CI_BUILD_QT_SKIP_SUBMODULES='qtimageformats,qtlanguageserver"
ctest -V -R RunCMake.ConfigureBuildQt
# Cherry-pick extra changes on top of the synced commits
# repos are split by '|', commits by ','
export QT_CI_BUILD_QT_EXTRA_CHERRYPICK_CHANGES='qtbase aaabbbccc|qtshadertools a12,b23,b45,refs/changes/57/628457/2'
ctest -V -R RunCMake.ConfigureBuildQt
# Checkout specific commits for each submodule
export QT_CI_BUILD_QT_EXTRA_CHECKOUT_CHANGES='qtbase refs/changes/54/634554/5|qtshadertools 3bb8a41c44fa69c30f6887685ad70ef7e84c10a6'
ctest -V -R RunCMake.ConfigureBuildQt
# Only run top-level no-prefix, but not in-source source builds
export QT_CI_BUILD_QT_FILTER='top_level,no_prefix,-per_repo,-in_source'
ctest -V -R RunCMake.ConfigureBuildQt
Change-Id: I355084081dd7b48cdf75c03eb001b64ab7ba96fb
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Cristian Le <cristian.le@qt.io>
We don't want Windows VMs to spam mDNS messages about optimizing
Windows updates, when the updates themselves are disabled.
Pick-to: 6.9 6.8
Task-number: QTQAINFRA-6761
Change-Id: I1452ebbb612f784c96f07de0a29cb2cfb54f1e75
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
The <Package>_ROOT should point to the package prefix, where
CMake should look for the respective cmake/, lib/cmake, and other
CMake package directories. Setting directly it to package path is
incorrect.
Pick-to: 6.8 6.9
Change-Id: Id8859c29da08144c60ed3d6301d2c65c8d602d1f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
We may read the installed package information from the 'vcpkg list'
command instead of parsing the vcpkg.json. Also instead of using
the jq as a parser, use the cmake script. This allows skipping the
jq installation.
Change-Id: Id3ace62f8f40ff1bd059878da3fd13e466861830
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Provision and run the test script on Windows in warn-only mode.
Task-number: QTQAINFRA-6796
Change-Id: I06fdfc44109017deb5eaacd3811930b98f1a10f7
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Virtio drivers were updated 0.1.204 -> 0.1.271 which seems to fix
network issues in CI. System OS name is also changed to 'WIN-23H2-X64-55' (15 character limit).
At the same time, 23h2 -54 began to receive a popup about incoming
Windows license expiration which was fixed by changing its ipk key in
-55.
Pick-to: 6.9 6.8
Task-number: QTQAINFRA-6761
Change-Id: Iace589156f878ec63e277ab5e30db3264fb29ebc
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
These modules build, but their tests do not. Remove tests from the
config to allow it to be blocking.
Change-Id: I5913835b7621494aa59671bb34b1faeaeaf3442c
Reviewed-by: Simo Fält <simo.falt@qt.io>
On iOS we no longer deploy FFmpeg .dylibs directly. As such, there is
no need to install the .dylibs during provisoning.
This patch removes this installation step during provisioning.
Pick-to: 6.9 6.8
Change-Id: I6f901113caca4b8d602490ba05db0c9dacb8f80d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Which gets us Xcode 16, with the macOS 15 SDK.
Pick-to: 6.9
Change-Id: I3c7936885e97e479873c4d012adca0d67765c907
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Native WoA builds are done with -no-opengl switch,
therefore native test coin nodes do not need to have
openglsw installed.
(ms-windows-store://pdp/?productid=9NQPSL29BFFF)
However, when trying to run cross compiled WoA on native
test nodes this ends up with:
tst_QOpenGLWindow::create() Failed to load opengl32sw (%1 is not a valid
tst_QOpenGLWindow::create() Failed to load and resolve WGL/OpenGL
function
Use the same switch on cross compile WoA configuration.
Note this can have the impact on installer binaries.
Task-number: COIN-1211
Change-Id: I508587f25701990c438f315bd9163fdd691ddeb3
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Which gets us Xcode 16, with the macOS 15 SDK.
Pick-to: 6.9
Change-Id: I755c27f64f903b281f5d1c7947fbf370ddc3ee17
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
There are two image templates right away: -70 is Windows 11 with no
Visual Studio or Windows SDK ever installed. -71 includes VS2022 17.9.1
(MSVC 14.39.33519) and Windows SDK 10.0.26100.1742
Image changes compared to 23h2:
- VS2019 is left out as it's no longer used in provisioning scripts.
- Old DirectX installation (10-dxsdk.ps1) is left out. It's legacy,
originally used for Windows 7, and newer libraries should be found
from Windows SDK.
- 08-libclang-v100-dyn.ps1 is removed as it's no longer used. It had
dependency to VS2019.
- These images use UEFI instead of BIOS.
[CI Platforms]
Task-number: QTQAINFRA-6734
Task-number: QTQAINFRA-6823
Change-Id: I53a62c74b07d7fbfc9b1afbe44444272ae7c51e7
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
* Update the version variable used to identify the correct package for
download and cache sites.
* Update SHA1 for provisioning packages on all platforms.
Fixes: QTBUG-134304
Pick-to: 6.9 6.8
Change-Id: I2577600296e75080d503dc1a537ddbc00d0f207f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reduce ci integration time for qtqwebengine winarm64, where doing
qthost msvc22 target takes ~5h compared to mingw ~15 min.
Add mingw runtime to path for WoA cross compile node.
Task-number: COIN-1211
Change-Id: Iecd6f924544d2a17a595ac85473f51b599f24202
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
We will use RHEL9 to build prebuild binaries from Qt 6.10 ->
Change-Id: Ib49908c2997f5faccc9aa5e32b60088658d405d8
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Currently this script relies on hard-coded values specify minimum
iOS version to link against.
This patch unifies the hard-coded values into a single variable.
No functional changes.
Pick-to: 6.9 6.8
Change-Id: I12bddeb53f0fe3388ea55c841a9864722a1d5f82
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Starting from 6.9 the "ubuntu-22.04-documentation-x11-tests" config
was replaced by "ubuntu-22.04-developer-build-x11-tests". The new
configuration doesn't test the documentation for warnings which is
why we had failures in 6.8 where to docs were checked but not in 6.9
or dev.
This commit fixes the issue by adding the relatively new
"documentation-warnings" configuration, which will once again check
our documentation.
See also 434e4a224a .
Task-number: QAA-2878
Pick-to: 6.9 6.9.0
Change-Id: I479a9606ab16f8b87009d26ab03636c4c658fcb5
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
Add instructions to run cmake on the qt5/tests/manual/RunCMake
directory followed by ctest.
These are only executed on platforms that set the
TopLevelRunCMakeTests feature.
Change-Id: I336f9395e5d9d580619eac028fbfc1d6c14bf805
Reviewed-by: Toni Saario <toni.saario@qt.io>
Coin CI doesn't provide git info for the qt5.git repo, but only a
source archive. The InitRepository test needs the git info to work
correctly.
When we detect that the test is run in the CI, instead of using the
source archive, clone the qt5.git repo from code.qt.io instead. Then
fetch and checkout the exact tested ref.
Change-Id: I892545c083288a8d32d3f8957bfc64984d52f5fc
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
The previous stdout regular expressions were expect the build dir to
be in the source dir. Relax that constraint, so any build dir can be
used.
Keep the generated 'tmp' part as the indicator for the build dir.
Change-Id: Ib8c2bf31f80926b9209948a5c70859e086ed71a1
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
RunCMake uses SEND_ERROR instead of FATAL_ERROR in run_cmake(),
which means that the script will continue to run even if a command
fails.
This change adds a check.cmake file and modifies run_suite_command to
ensure that we exit early if a command fails.
Change-Id: I8175ddc91144e3d0dea131857138af7940626208
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
The test has bit-rotted a bit since the last manual run.
Adapt the modified litehtml submodule URL.
Add the additional git config command to the output.
Change-Id: I240274a0772d6024401e8d08f6c150d4f12ac8cb
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Adjust the path to where expect to find the QtRunCMakeTestHelpers
module in qtbase.
Replace the usage of 'QtIRRunCMake' with 'RunCMake' in the root test
CMakeLists.txt.
Pass the current source dir as an extra module path to the RunCMake
test, so it can find the Common module without relying on relative
paths, so that any build dir works.
Remove the unnecessary forwarding of CMAKE_SYSTEM_NAME.
Amends e552513c9f
Change-Id: If804bcb36a0bd3df6e4617e56c146094793138c4
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Currently this script overwrites a local variables and reuses it for
a (slightly) different purpose. This makes the code a bit hard to
follow.
This patch introduces a separate local variable to improve readability.
No functional changes.
Pick-to: 6.9 6.8
Change-Id: Ifa1904482f498d9b380d1ed19ab6b0104afda19b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Currently this provisioning script builds for arm64 architecture
when on iOS simulator. Qt ships x86_64 binaries for iOS simulator, and
we should build FFmpeg similarly.
This patch introduces support for x86_64-simulator in the iOS FFmpeg
provisioning script and uses it in place of arm64-simulator.
Pick-to: 6.9 6.8
Task-number: QTQAINFRA-7034
Change-Id: Ie93cffba51924cd1d78651d20dec211817cb0cef
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
While writing a documentation for FFmpeg build on iOS it was found that
many options are redundant. Remove them to simplify the provisioning
script and to reduce the amount of cargo cult code.
Pick-to: 6.8 6.9
Fixes: QTBUG-133502
Change-Id: I26aab49365eaca83bcdbfeb86de0638ac701bb80
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
* add FFmpeg stubs to the 'Required.private' section.
This will make the logic more robust after integration this
in qt multimedia.
* add some script comments.
* fix shellcheck.
* add validity checks.
Pick-to: 6.8 6.9
Change-Id: I28639d21c7210109e52ff98ce682da51f8744287
Reviewed-by: Jøger Hansegård <jogerh@gmail.com>
Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
The provisioning script install-ffmpeg-android.sh can be useful to run
locally to make sure we build FFmpeg with the same configuration as we
do in CI.
This patch introduce an optional parameter to this provisioning script
that allows us to specify where to install the compiled binaries.
Pick-to: 6.9
Change-Id: I7ea30bffa4753ac1fab707ed2876ddcbbca06175
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Windows usually updates certificates once a week, but due
to disabling Windows background updates there is need to
install and update certificates manually.
Updating certificates during provisioning is selected method
as it's aligned with the same procedure how linux machines have
handled the same.
Task-number: QTQAINFRA-7001
Pick-to: 6.9 6.8 5.15
Change-Id: I7c077b5e08328b12c481a3501736f06baf85e71e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
openSUSE 15.6 doesn't have explicit openssl-3,
same was earlier seen with SLES 15.6 as well.
Therefore System's OpenSSL is read from openssl.
Pick-to: 6.9 6.8
Change-Id: I38d81b5484732e225036530e5326433ab90ef92b
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>