Commit Graph

208 Commits (bb10)

Author SHA1 Message Date
Lucie Gérard 37804d9555 Add calling license check on generated source SBOM
The license check is only called if VERIFY_SOURCE_SBOM is set to ON
in the module_config.yaml. This way, a module can turn on the check
only when ready.

The license check is done via a perl script. Since no perl is
available for Windows on ARM64, VERIFY_SOURCE_SBOM is set to OFF
in this case.

Task-number: QTBUG-131434
Change-Id: I183b7726928bbc925940330d39779a4ac2307254
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 153002f7d2904988efdd8abc68adff0f9927943b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 01e5801cec6d444193c97a57faf3008b93f1d1d7)
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2025-02-03 18:07:34 +01:00
Alexandru Croitor ce64027cb5 coin: Enable git cloning
Cloning the git sources will:
- allow embedding the git sha1 into the SBOM generated by the build
system
- ease development process in CI VMs when investigating issues.

This will slightly slow down the CI build phase by a minute or two.

Task-number: QTBUG-122899
Task-number: QTQAINFRA-6520
Change-Id: If554ed0fedca26ff77d04752288ee8497bc4b9ce
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 5717a4fd4a3fd2ba530a7eb4812ce2a5c34515cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 3f2698ce36c518f9781f240f3707b61c839c130b)
2025-01-31 14:16:19 +00:00
Alexandru Croitor ff0285ce6b coin: Build qdoc as part of repo instructions for CI doc building
Backstory.

The current approach for building documentation in the CI is that we
build a static qdoc in a Jenkins job, manually provision it in
qt5.git, and then build qt documentation using that somewhat
old qdoc version.

Updating the provisioned qdoc is a very slow process, because changes
first need to be merged into qttools, then a Jenkins job needs to be
manually run, then provisioning needs to be updated, and sometimes it
also depends on a full qt5.git submodule update or has to wait for
other unrelated changes to qt5.git.

The new approach.

This change adds CI instructions to build a static qdoc (and
other relevant tools necessary for documentation generation)
using the latest qttools/dev/HEAD sha1 in a specific host platform's
qtbase build instructions, and then uses those tools for documentation
generation and doc warning checks in each repo's TestDocs CI test
phase.

To enable these new instructions, the host platform and the doc
checking platform need to be tagged with the 'DocsGenerationV2'
feature.

The built tools are cached in a separate archive using a new Coin
feature, which is then extracted during each repo's TestDocs phase.

Pros and cons.

The benefit of this new approach is that we will always use a mostly
up-to-date qdoc from qttools/dev/HEAD when generating documentation,
making the documentation team's life easier.

Specifically, once the doc tools are built in qtbase with the latest
qttools/dev/HEAD sha1 that was available during that integration, the
resulting built tools are then used for doc checks in dependent repos.

A newer qttools/dev/HEAD sha1 will only be used for a particular
repo once the qtbase dependencies.yaml sha1 is updated, or when doing
qt5.git changes that cause a rebuild of qtbase.
Note that while new tools are built due to dependency updates, the
used qttools sha1 is not recorded in any way in any of the
dependencies.yaml files.

qtbase doc checks will always use the latest qttools/dev/HEAD sha1 at
the integration time, because the tools will always be built from
scratch.

The downside of the new approach is that, by default, the doc
generation will not use a pinned version of qdoc anymore,
but rather follow the flow described above. This has a chance of
introducing failures which are unrelated to integrating changes.
This should happen rarely because the doc team usually tries to fix
doc warnings before changing qdoc's code.

If temporary pinning of qttools or qt5.git is required when testing the
docs of a specific repo, it can be achieved as follows:
- set the QT_CI_BUILD_REPO_DOC_TOOLS env var to "1" in the repo
  coin/module_config.yaml file build instructions, to ensure the doc
  tools are built in that repo, rather than reuse the ones built in
  qtbase

- set the QT_CI_DOC_TOOLS_PIN_GIT_REF env var to the desired qttools
  sha1 or other git ref, in the same build instructions phase

- optionally set the QT_CI_DOC_TOOLS_TOP_LEVEL_PIN_GIT_REF env var to
  the desired qt5.git sha1 or other git ref, in the same build
  instructions phase, if a different version of qt5.git is required

- optionally set the QT_CI_DOC_TOOLS_USE_CI_TOP_LEVEL_BRANCH env var
  to ON, in case if the module branch that the CI job computes should
  be used as the qt5.git branch

- set the QT_CI_FETCH_REPO_DOC_TOOLS env var to "1" in the repo test
  instructions, to ensure the just built doc tools are fetched instead
  of the qtbase-built ones

Test running this new approach will allow us to collect some feedback
on how often breakages happen, and how much easier it makes the
documentation team's work, or how much harder it makes the life of
regular integrations.

The abundant amount of optional pinning options should be enough to
avoid any permanent integration dead locks.

Task-number: QTBUG-128730
Change-Id: I8606cb3076036a4a0ec652d0fa74d270e8f5dfdf
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
(cherry picked from commit 1f646bb978ed94c25f6224e801779c929096c0ae)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-11-02 14:49:15 +01:00
Alexandru Croitor de6615057e coin: De-duplicate test docs instructions
Add a new coin_test_docs_common.yaml file that contains the common
instructions for configuring a documentation warning build.

Task-number: QTBUG-128730
Change-Id: Ifc86570f3c98e64364f3c2c2bb71f45eaaee0c19
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 3da46b5fc2ea04be85c458f9eac88dbe1f091757)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-11-02 14:49:15 +01:00
Toni Saario 3a665a308d Revert "Coin: sign only x86 packages"
This reverts commit 8d5e7d50d8.

Reason for revert: Arm packages should be sign-able now.

Change-Id: I6a896bfd84927da9c15647d207a6ad5024a27949
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
(cherry picked from commit a33811ee8d746d70a7eba4ba8b1d321ace96f741)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-11-02 13:49:14 +00:00
Tor Arne Vestbø 65c2600b7b coin: Prepare building environment for documentation warning build
So that we don't rely on building/running Qt auto tests just to
build the docs.

Change-Id: If3939717c57e8d4074afe0d611a1d04e65da7d36
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 876622c3e2702610ff8e26adc773441c07afb52b)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-11-01 09:42:57 +01:00
Simo Fält 20b9d76adf Default qtqa branch to dev if no matching branch found
This makes tqtc/ branches to use the public branches.

Amends 2a0e89981a52633c497f62bad0c7d26c466493cb

Task-number: QTBUG-124453
Task-number: QTBUG-125211
Task-number: QTBUG-125569
Task-number: QTQAINFRA-3935
Change-Id: I1098165c3122befabc503d38c46d476920d835a2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 701f688d9909c45f37d497746a6d6d893be4a5f6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-29 17:10:48 +00:00
Alexandru Croitor 5a67e61a0e coin: Use dynamic current branch for qtqa license checking
Coin can now dynamically refer to the current branch of the repo being
integrated in the module instructions.

Change the license checking instructions to use the current branch
of the qtqa repo, rather than the dev branch.

This makes the behavior consistent with what everyone expects, instead
of using a hardcoded qtqa branch for all stable branches.

Amends 2a0e89981a52633c497f62bad0c7d26c466493cb

Task-number: COIN-573
Task-number: QTQAINFRA-3935
Task-number: QTQAINFRA-3878
Task-number: QTQAINFRA-4975
Change-Id: I6575c2868f3a7170570803f620feb5723fbbe6df
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 6c6a63cc8f49918d1059910644bcfaa4554b12f1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-21 14:13:56 +00:00
Alexandru Croitor f60bc34be7 coin: Always pass the SBOM python interpreter to configure
The Qt default has changed to always generate an SBOM for all
platforms in the CI, so we always want to pass the location of the
python interpreter meant for SBOM processing to configure.

Task-number: QTBUG-122899
Change-Id: I1042c97b9133ca37e42eb3efd1689ec1f9f9ab31
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 1f8236236b86aac1a62c405ee8f186cd43e5ff17)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-21 08:37:24 +00:00
Alexandru Croitor 4bf5a5037e coin: Remove unused QT_INTERNAL_NO_SBOM_FIND_PYTHON_FRAMEWORK var
It was removed in a previous change and does nothing now.

Task-number: QTBUG-122899
Change-Id: I7a84c243c08a65e445cbd657eb281b37e68f1893
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 3acc310f9e90ff3ecd4135a184e8f4b7b366a75d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-21 08:37:22 +00:00
Assam Boudjelthia bbf819dd23 Android: unset QT_IM_MODULE when running Android tests
This environment variable might be set by some party (not quite sure
what, maybe the host OS), and when androidtestrunner passes QT_* vars
it might interfere with the input tests.

Change-Id: I2a88c78535d6e3a809e8fcee8f8d752f91044a8c
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 26016bc6d42f050b7095579150eee34bc69343f8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-17 19:30:34 +00:00
Alexandru Croitor 3946e7af6f coin: Move cross-compilation build directories outside of sources
This stops confusing the 'reuse' tool when trying to generate a source
SBOM. The tool considers all files in the source dir as source files,
and because we placed the build dir inside the source dir, all build
files were considered source files. This caused errors saying the
files don't have copyright headers.

Change the build directory for cross-compilation jobs to be outside of
the source directory, similar how we do it for the native builds.

Augments ae62d908a5

Task-number: QTBUG-82820
Task-number: QTBUG-96513
Task-number: QTBUG-122899
Task-number: QTBUG-124453
Task-number: QTBUG-125211
Change-Id: Ie82a6c55aa5326f7e9cc5c0e09342f3405e78d17
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit fc08a07a0035b3398cf009fef1ab4956ab4b60ce)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-08 16:46:36 +00:00
Alexandru Croitor be2e37f85a coin: Remove dead code that used to build host Qt in a cross-build
We don't build a host Qt during a cross-compilation build for a few
years now. Instead we reuse the prebuilt host from the platform
dependencies. This was left over to allow gradual porting to the new
way of using platform dependencies, which is now long done.

Remove the code to ease maintenance.

Amends 684fea1314

Change-Id: I9988da6f33f9d9b98d304316317d39c3dfb7c633
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit bb3ce6989eb90c0a8142c158a05eb237dfa8f032)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-08 16:46:35 +00:00
Simo Fält 2822db26be CI: Set SBOM_PYTHON_APPS_PATH env variable only if not set already
Change-Id: Ie8849721ff576079d708412c441cdf4830dbe427
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit cfa106c7d48167c1ae36dd56391de801758a0383)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-10-07 18:50:13 +00:00
Toni Saario ae4a48decc Coin: Fix Windows aarch64 cross compile conditions
Match to Windows target OS and different target arch, which tells that
it is a cross-compilation.

Change-Id: Iba2d087cda501cd2622a1bd8a8732100b920956b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit b8521b89dfa36519afe8a7c8f02b982d760fc0f6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-09-11 09:06:54 +00:00
Dominik Holland 81a9cbe1db coin: Introduce a COIN_DOC_CMAKE_ARGS env variable
This can be used to configure extra cmake args for the documentation
build in coin.

Change-Id: I11417bee9630aebe0bbc118cd843b1536101da71
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit b956a909c5ff29bf9824c054750966bdec42c6ca)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-08-20 01:28:02 +00:00
Toni Saario 30e0091774 Coin: Prefer publickey in QNX emulator ssh
When starting QNX emulator this makes VM to try to publickey first.

This avoids VM from trying to use gssapi-with-mic authentication,
which in some cases hangs indefinitely causing a timeout.

Pick-to: 6.7 6.5
Change-Id: I499c668a910851d97ce8de803a1064dcd7b0b74d
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 97637f909482a0b8472f99c6ecdc873029843cb1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-08-05 19:28:43 +00:00
Alexandru Croitor 37dc5b91fd coin: Add instructions for running license checker during test phase
Add yaml instructions to run the license checker from the qtqa dev
branch, when the LicenseCheckV2 feature is enabled.

This is intended to replace the old legacy instructions that are
hard coded into Coin, that are activated via the 'LicenseCheck' and
'UseLegacyInstructions' features.

We can't reuse the old name and remove the 'UseLegacyInstructions'
feature, because Coin expects license checking instructions to be
added to a separate 'LicenseCheck' phase in the yaml file,
and doesn't allow doing it in the 'Test' phase.

A platform config should enable both the LicenseCheckV2 and TestOnly
features, to ensure the license checking doesn't wait for the build to
finish before running.

The instructions are added to
coin_module_test_template_v3.yaml and
coin_module_test_template_v2.yaml
so that we don't have to add them manually to all repo's
module_config.yaml file, but rather reuse the existing yaml files.

We add the instructions to the v2 file as well, because not all repos
have been ported to v3, like qtmqtt, which is not ported on purpose,
because tests don't pass there currently.

Note that so far, all license checking was done using the qtqa master
branch, not the dev branch. The dev branch currently has more changes
than master (many changes were not cherry-picked). That means that the
check might fail in some repos, and thus have to be fixed.

Task-number: QTBUG-124453
Task-number: QTBUG-125211
Task-number: QTBUG-125569
Task-number: QTQAINFRA-3935
Change-Id: I715b99853aa041cb036d6b61b071746f010565d0
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 2a0e89981a52633c497f62bad0c7d26c466493cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-07-30 12:50:37 +00:00
Alexandru Croitor 633013827a coin: Unset DESTDIR after installation
Keeping DESTDIR set to "{{.InstallRoot}}" after installation has
potential to break other unintended CMake file(INSTALL) calls that
take DESTDIR into account.

This already happened for the CMake macOS POST_BUILD deployment API,
which accidentally installed into the install root, when it shouldn't
have.

Unset the DESTDIR env var after we install Qt.

We already do that in the cross-compiling Coin instructions, so this
brings uniformity to the host builds as well.

Task-number: QTBUG-90820
Task-number: QTBUG-96232
Change-Id: I6aca31e36c67c8d4b293efd746c37a42ea9ca834
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit 02cb165ef8050230b477358e4136e9f0acd83eb6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-07-24 20:14:21 +00:00
Alexandru Croitor dcacb0be97 coin: Enable generation and linting of source SBOM
This will enable generation and linting of source SBOMs only if the
repository source root contains a REUSE.toml file. Otherwise the steps
will be skipped.

Task-number: QTBUG-122899
Task-number: QTBUG-125211
Change-Id: I87ea9aad7fb4f15ec7fa9d00072c81cddbe7ea2c
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit 186d368f0d613d7d1b60a6d1dc197269ab4db8f8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-07-24 12:38:21 +00:00
Alexandru Croitor 7e831c3b66 coin: CMake: Add instructions to generate JSON and verify the SBOM
If the VerifySBOM feature is enabled, pass additional options to
CMake configuration:
- runs syntactic verification of the SBOM
- so it converts the generated SBOM files into JSON files (and
  installs them). This does additional useful validations.
- runs the NTIA SBOM verifier
- shows some of the content in the SBOM in a more user-friendly table
  format via the sbom2doc python app
- runs sbomaudit to show things like packages without a license
  expression, doesn't exit with errors if issues are found.

To ensure the tables are wide enough in the log on the CI, we set
an explicit value for COLUMNS env var, which is used by sbom2doc
to determine the table size.

To ensure the sbom2doc and sbomaudit python applications are found,
we supply additional locations where they can be found, via the
env vars that coin python provisioning sets.

We also make sure to pass the found application paths when executing
the python apps, because they might not be in PATH by default.

Task-number: QTBUG-122899
Change-Id: I0baef8b9c949209b15ab304e1e840b4dcdf5a61c
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 83ff34d1c626759224a95f39bca8337a8390ed52)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-06-20 19:29:55 +00:00
Toni Saario 9e5759cd2a Coin: Add a way to disable test upload
The use case is where blocking test building is wanted but they cannot
be uploaded due to being static or they would simply be unused.

Pick-to: 6.7
Change-Id: I32ad20fea2ec032fb1f1a9b86025b34f192e0ed2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 6a0c94b62d948d3da0da241cf1e6c15188069169)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-06-19 13:14:45 +00:00
Alexandru Croitor fc3ac85db9 coin: Add instructions for generating an SBOM when installing Qt
The instructions will only run if a coin platform config has the
'GenerateSBOM' feature.

The -sbom configure option is not sticky across repos,
similar to -headersclean, so that if a user wants to build another
qt repo against a prebuilt qt, it won't try to generate the sbom
automatically.
That's why we append -sbom to all the repos configure args, and not
just the qtbase one.

Task-number: QTBUG-122899
Change-Id: Ice91cbc430826838119ce3085cbd52c0909f2746
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit d940399b3e6e9403f94190ffc71a5f5db68f51f3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-06-14 11:02:59 +00:00
Tor Arne Vestbø 6d95a07af0 coin: Make macOS 12 and 13 Tart ARM VMs significant
The last 30 days shows that these configs are stable, so we can
make them significant:

 http://testresults.qt.io/grafana/goto/jBYi1JsSR?orgId=1

The tst_qheif::writeImage test has been blacklisted separately.

Change-Id: Ibe7981bce2db1ec90781d3ea33fe7d4541990aea
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 70ace7ae78d6637c21a646e726caffb36a1968a6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-06-03 12:57:01 +00:00
Tor Arne Vestbø 1dd916fec3 coin: Ignore CTest exit code for Tart configs, unless module overrides
By selectively setting the COIN_CTEST_IGNORE_EXIT_CODE we can allow
modules to gradually become significant, without touching qt5.git

Change-Id: Ie5b6e683cd755b1cf46886bb30803a56885a11a6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-05-29 20:12:44 +02:00
Tor Arne Vestbø ca95a10987 coin: Decide whether to ignore CTest exit code based on environment var
This deduplicates some of the coin instruction files, and opens up the
possibility for other instructions to determine whether a test run
is significant or not.

The only module still using the coin_module_test_template_v2 template
is the QtMQTT module, so the behavior of ignore the test run has been
kept.

The static library opt out was a remnant from the cmake porting, and
can be removed.

Change-Id: I0f9fcbbd3a5a18bd9c8e0f545b0f0656e03bf388
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-05-29 20:12:44 +02:00
Toni Saario 8d5e7d50d8 Coin: sign only x86 packages
Coin is currently missing support for arm64 signing. Drop the signing
on arm64 for time being to allow packaging flag to be added to export
arm64 builds.

Change-Id: If684fa4d787fccb99ac9a0ebad56ec723faba354
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2024-05-17 14:36:27 +03:00
Alexandru Croitor 224b7c6b6a CMake: Allow configuring a minimal subset of examples to deploy
When building examples as part of Qt in the CI, it's best to skip
running deployment for all examples to save resources
(space and time).

Add a QT_DEPLOY_MINIMAL_EXAMPLES option similar to our
QT_BUILD_MINIMAL_STATIC_TESTS option, which will set
QT_INTERNAL_SKIP_DEPLOYMENT at the root examples directory scope, to
skip deployment for all examples.
Each example can then opt into the minimal subset by unsetting the
QT_INTERNAL_SKIP_DEPLOYMENT variable before its
qt_internal_add_example call.

Add Coin instructions to enable this option when building our examples
in the CI.

Pick-to: 6.7
Task-number: QTBUG-90820
Task-number: QTBUG-96232
Task-number: QTBUG-102057
Change-Id: I2efcda455b400c27fe1efd1bcf81b133137fa2d1
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
2024-03-19 18:22:16 +01:00
Alexandru Croitor d644f2e02c coin: Add instructions to build standalone examples
If a qt5.git configuration is marked with the StandaloneTests feature,
tell CMake not to build the examples in-tree, and instead use
qt-internal-configure-examples to build the examples out-of-tree.

This brings a couple of improvements:
- higher chance of building examples as ExternalProjects without
  issues
- ability to use deployment api in examples, without installing the
  examples into a main install prefix

The new coin instructions files use a copy of the standalone tests
instructions as a base.

Task-number: QTBUG-90820
Task-number: QTBUG-96232
Change-Id: If89e6da0b327a38b9c2738f58aa1b5b5fb9fda37
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2024-03-14 11:44:16 +01:00
Alexandru Croitor 7684814b8b Coin: Set COIN_CROSS_PLATFORM_VERSION_TEST environment variable
We have certain platforms where we build on one OS version (the
latest) and then test on an older version.
macOS is an example of such a platform.

Set the COIN_CROSS_PLATFORM_VERSION_TEST environment variable to true
for such platforms. They usually have a dependency on the main OS
version and are marked with the TestOnly feature.

This is useful information that can be used by CMake build tests in
order to skip those that do not account for the difference in OS
versions.

Change-Id: I6eeeac98abe6beb00ce431e17589f8e093ed23e4
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2024-03-04 20:14:36 +01:00
Dimitrios Apostolou 9379b634a8 Print output of failed tests only once
Pick-to: 6.7 6.6 6.5
Fixes: QTBUG-118983
Change-Id: I4473f64a7f9ec838a2bc2f705af77fb4c5df35de
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-02-26 18:59:03 +01:00
Simo Fält df1efc70b0 COIN: Move skipping Debian instructions to qt5 repo
Pick-to: 6.6 6.7
Task-number: QTBUG-122447
Change-Id: I385d60d891c68edc3aa053d3561335a46b26923b
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-02-22 15:54:25 +00:00
Matti Paaso 0d9c92bfdf Fix mount command
Mount on Virtual machine uses NFS version 4 as default,
and it was causing disk I/O errors when trying to access disk.
Forcing the mount use NFS version 3.

Change-Id: Ibc5958d8a7e71c463ffa9c3282344c08b2c5019a
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-02-15 09:52:52 +02:00
Simo Fält d4568bcfdb COIN: Enable setting Debian target distro with env variable
Pick-to: 6.7
Change-Id: I8cc0e9127ee7dd1e810812688ad32e759510cbe9
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-01-31 11:28:42 +00:00
Tero Heikkinen 8dffb3c5e3 Coin: Add native MSVC ARM64 instructions
Task-number: QTQAINFRA-5855
Pick-to: 6.7 6.6
Change-Id: I95a3b5f44c2513becb0bdbd5f56c0a5e36e889d9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-12-18 20:00:44 +02:00
Assam Boudjelthia 3ee2ecd6bf CMake:Android:Coin: prioritize timeout from COIN_COMMAND_OUTPUT_TIMEOUT
... from CMake so that Coin doesn't end up killing the whole VM if aRows
test gets stuck and instead allow androidtestrunner to cleanup and fetch
the logs so we know what happened, and even potentially ending up re-run
the test and succeeding if it was flaky.

Also, since CMake sets the timeout during configuration time, coin needs
to set COIN_COMMAND_OUTPUT_TIMEOUT under the build target where tests
are configured, so this moves the setting of that env var from the test
target to the build target.

Pick-to: 6.7 6.6 6.5
Change-Id: I9883ea1e98c93f79a088067518d09ca8acd5fdfd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-13 20:52:16 +02:00
Alexandru Croitor b4738ebb1e coin: Fix installation failing during tqtc-qt5.git integrations
During tqtc repo submodule updates, the repo names contain the tqtc-
prefix.
But during the final tqtc-qt5.git integration, the submodule names
don't contain the tqtc- prefix.

This causes errors like:

 CMake Error: Error processing file: /qt-cmake-private-install.cmake

Use contains_value in the condition instead of equals_value, to ensure
it works for both scenarios. This assumes there will be no repos that
contain 'qtbase' in their name which are not the original qtbase
repo.

Amends 7e334bc7fc4c6c9de379e19076197af5b7fef9ee

picked from commit 6556a943ce8625ce1043a2da64deed187b7ce209 in the
tqtc repo, so that we don't need to do it for every new lts branch.

Change-Id: Ib38c855525c91032d35c235bf33d860204474fe0
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-11-22 21:15:38 +01:00
Toni Saario ea84c1a229 Add VxWorks specific instructions
Adds VxWorks conditions to match target instructions
and sets env prefix to wrenv.

Change-Id: If9a8ffcdf4b60cc4b45eb2a336737d77d2f8804a
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
2023-11-13 18:14:59 +00:00
Dimitrios Apostolou 19aa21b595 CTest should write a JUnit XML test summary
This feature is to be used when testing Qt in Coin (our continuous
integration platform). The command line option --output-junit is
supported in CMake 3.21 or greater. However we have one particular
configuration that tests with CMake 3.16, so we exclude that one.

We have already configured the individual tests to print detailed
results in their own XML files, using QTest's functionality. But then,
when a qt test process crashes, it leaves behind a half-baked XML
file, or no file at all.

CTest on the contrary knows nothing about the internals of a Qt test,
and only cares about the process exit code. Even if a test crashes, it
catches that and reports it as a failure.

We enable this functionality here to use in addition to what QTest's
XML files provide, in order to collect more complete information on
test results.

Pick-to: 6.6 6.5
Task-number: QTQAINFRA-5146
Change-Id: I226203f93413689f5767a4d01ea1852b453ebf31
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-11-08 18:24:17 +01:00
Toni Saario 7eb0cc2b4d Remove downstream config
It is outdated and it was discussed that it would be removed in favor
of other options.

Change-Id: If2468c84d8ca8197587577ae3d72aeb96c822c5f
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2023-11-08 20:21:30 +03:00
Dimitrios Apostolou 737ed17803 Always print output of a failing test
For now this affects only the ASAN-enabled testruns that are run
without "-V" in ctest's command line.

Pick-to: 6.6 6.5
Change-Id: Iaa889f950e5de0657523dc9bcb457968c1cbf29e
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-11-05 12:20:12 +01:00
Dimitrios Apostolou 333650c596 Increase Coin timeout for ctest command under sanitized testruns
Reason is that after changing the sanitized testruns to quiet, we
have been hitting the 15min output-inactivity timeout.

Set it to the same value as the total workitem timeout, effectively
disabling it.

Pick-to: 6.6 6.5
Change-Id: I13c2d97b25cf338873bb89ef1ed45d58e3cdd170
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
2023-10-27 13:46:37 +00:00
Dimitrios Apostolou ba1eec62a8 Keep the testrun quiet for ASAN testruns
This is purely cosmetic, to avoid confusion when reading the logs and
find many "FAIL!" strings all over the place. The ASAN testrun only
cares for "ERROR: AddressSanitizer" type errors, and tests pass even
if they print "FAIL!" (that is taken care by sanitizer-testrunner.py).

Fixes: QTQAINFRA-5896
Pick-to: 6.6 6.5
Change-Id: Ib7a5fb2c3ee56581db20efb4dd7cf24a053d5c13
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-10-19 19:09:01 +02:00
Matti Paaso fc9d9c1a2b Change Axivion configuration
Change-Id: Ie39086efa69b7f1bad4e400ca5a32b9f0fc29c3e
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-10-05 17:51:11 +03:00
Simo Fält e20328d84f CI: Fix resolving dependencies with Debian packages
Pick-to: 6.6
Change-Id: Ia057c34318daff2d63237d523803a4231a621da1
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit ce09de5809fc22ca7e0c8114fbde3577cac668de)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2023-09-29 06:23:57 +00:00
Simo Fält f07efb4819 CI: Enable changing chroot in platform config for Debian packaging
Allows us to change the target distro through platform configuration
yaml file.

Pick-to: 6.6
Task-number: QTBUG-117120
Change-Id: Ie6e99e4b25198e27491e6191f57d77dbbe3c4eed
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 798175930e517e28230e3db3213510a22a041620)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2023-09-21 16:16:46 +00:00
Simo Fält a2e731e7e2 COIN: Increase timeout for running sbuild for debian packages
Change-Id: Id0b53dece8d4bbf1faa89c1ec409c5d241129779
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 208a587b015087990fbf944d9fb50b04f8be6210)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2023-09-08 11:30:36 +00:00
Casimir Saastamoinen d4cccd0471 Enable binfmts incase it is disabled
Pick-to: 6.5 6.6
Task-number: COIN-1075
Change-Id: I476833e87af213b4fd7eced4accdc19f093c6824
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-08-31 06:31:36 +00:00
Toni Saario c6279001c7 Use install from libexec for QNX on Windows
It moved to libexec at some point in 6.5.

Pick-to: 6.5 6.6
Change-Id: I1e80c0dd1dc253c08bf509aeb605b863a5d67e47
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-08-17 14:44:53 +03:00
Simo Fält 77273f2693 COIN: Enable debian instructions for all submodules
Pick-to: 6.6
Change-Id: Ic5ce96cb0dbcb85fbffb3af52d65b9c3fd7f9bb4
Reviewed-by: Toni Saario <toni.saario@qt.io>
2023-08-16 12:56:51 +00:00