From 439f6c9576f33df4495364f2534551c98d9c47d7 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Wed, 27 Jan 2021 01:01:49 +0100 Subject: coin: Add instructions to generate docs during testing A single configuration provides qdoc and qtattributionsscanner via provisioning. The environment variables instruct QDoc to run in testing mode; it ignores linking warnings (since we don't have .index files for external documentation modules) and terminates with non-zero exit code if documentation warnings exceed the limit set in the documentation config. The provisioned binaries are portable, packaged together with their dependencies. As they are installed under /opt, the instructions create symlinks to the binaries in the install directory before building the 'generate_docs' target. Pick-to: 6.2 Task-number: QTBUG-78069 Fixes: QTBUG-95554 Change-Id: I4a4765250247e2fc6eddd153c36cf8126ddd10ae Reviewed-by: Paul Wicking --- coin/instructions/coin_module_test_docs.yaml | 36 +++++++++++++++++++++++++ coin/instructions/coin_qtbase_test_docs.yaml | 39 ++++++++++++++++++++++++++++ coin/module_config.yaml | 1 + 3 files changed, 76 insertions(+) create mode 100644 coin/instructions/coin_module_test_docs.yaml create mode 100644 coin/instructions/coin_qtbase_test_docs.yaml diff --git a/coin/instructions/coin_module_test_docs.yaml b/coin/instructions/coin_module_test_docs.yaml new file mode 100644 index 0000000000..f42b6ae08f --- /dev/null +++ b/coin/instructions/coin_module_test_docs.yaml @@ -0,0 +1,36 @@ +type: Group +instructions: + - type: EnvironmentVariable + variableName: QDOC_NOLINKERRORS + variableValue: 1 + - type: EnvironmentVariable + variableName: QDOC_ENABLE_WARNINGLIMIT + variableValue: 1 + - type: SetBuildDirectory + directory: "{{.SourceDir}}" + - type: ChangeDirectory + directory: "{{.BuildDir}}" + - type: ExecuteCommand + command: "cp -rfs /opt/qt-doctools/. {{.InstallDir}}" + userMessageOnFailure: > + Failed to create links to provisioned binaries. + - type: EnvironmentVariable + variableName: COIN_CMAKE_ARGS + variableValue: "-DQT_BUILD_TESTS=OFF {{.SourceDir}}" + - !include "{{qt/qtbase}}/call_cmake.yaml" + - type: ExecuteCommand + command: "{{.Env.ENV_PREFIX}} cmake --build . --target generate_docs -v" + ignoreExitCode: false + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 900 + userMessageOnFailure: > + Documentation check failed, see the log for details. +enable_if: + condition: and + conditions: + - condition: property + property: features + contains_value: "TestDocs" + - condition: property + property: host.os + equals_property: target.os diff --git a/coin/instructions/coin_qtbase_test_docs.yaml b/coin/instructions/coin_qtbase_test_docs.yaml new file mode 100644 index 0000000000..824d8c5677 --- /dev/null +++ b/coin/instructions/coin_qtbase_test_docs.yaml @@ -0,0 +1,39 @@ +type: Group +instructions: + - type: EnvironmentVariable + variableName: QDOC_NOLINKERRORS + variableValue: 1 + - type: EnvironmentVariable + variableName: QDOC_ENABLE_WARNINGLIMIT + variableValue: 1 + - type: SetBuildDirectory + directory: "{{.SourceDir}}" + - type: ChangeDirectory + directory: "{{.BuildDir}}" + - type: ExecuteCommand + command: "cp -rfs /opt/qt-doctools/. {{.InstallDir}}" + userMessageOnFailure: > + Failed to create links to provisioned binaries. + - type: ExecuteCommand + command: "{{.Env.ENV_PREFIX}} cmake {{.Env.CONFIGURE_ARGS}} -DCMAKE_INSTALL_PREFIX:PATH={{.InstallDir}} -DQT_BUILD_TESTS=OFF {{.SourceDir}}" + executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: > + Failed to call cmake. + - type: ExecuteCommand + command: "{{.Env.ENV_PREFIX}} cmake --build . --target generate_docs -v" + ignoreExitCode: false + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 900 + userMessageOnFailure: > + Documentation check failed, see the log for details. +enable_if: + condition: and + conditions: + - condition: property + property: features + contains_value: "TestDocs" + - condition: property + property: host.os + equals_property: target.os diff --git a/coin/module_config.yaml b/coin/module_config.yaml index 6d7f067ebc..868b37f3dc 100644 --- a/coin/module_config.yaml +++ b/coin/module_config.yaml @@ -10,3 +10,4 @@ instructions: Test: - !include "{{qt/qtbase}}/coin_module_test_template_v3.yaml" + - !include "{{qt/qtbase}}/coin_qtbase_test_docs.yaml" -- cgit v1.2.3