diff options
Diffstat (limited to 'coin/instructions')
28 files changed, 575 insertions, 175 deletions
diff --git a/coin/instructions/call_cmake_for_standalone_examples.yaml b/coin/instructions/call_cmake_for_standalone_examples.yaml new file mode 100644 index 0000000000..eb811cbea4 --- /dev/null +++ b/coin/instructions/call_cmake_for_standalone_examples.yaml @@ -0,0 +1,26 @@ +type: Group +instructions: + - type: ChangeDirectory + directory: "{{.BuildDir}}" + - type: ExecuteCommand + command: "{{.Env.EXAMPLES_ENV_PREFIX}} {{.Env.INSTALL_DIR_FOR_EXAMPLES}}\\bin\\qt-internal-configure-examples {{.Env.COIN_CMAKE_ARGS}}" + executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: > + Failed to call configure examples. + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: ExecuteCommand + command: "{{.Env.EXAMPLES_ENV_PREFIX}} {{.Env.INSTALL_DIR_FOR_EXAMPLES}}/libexec/qt-internal-configure-examples {{.Env.COIN_CMAKE_ARGS}}" + executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: > + Failed to call configure examples. + disable_if: + condition: property + property: host.os + equals_value: Windows diff --git a/coin/instructions/call_host_install.yaml b/coin/instructions/call_host_install.yaml index 1d2bac610e..1d923fa8f5 100644 --- a/coin/instructions/call_host_install.yaml +++ b/coin/instructions/call_host_install.yaml @@ -8,7 +8,7 @@ instructions: enable_if: condition: runtime env_var: TESTED_MODULE_COIN - equals_value: qtbase + contains_value: qtbase userMessageOnFailure: > Failed to install package. - type: ExecuteCommand @@ -19,6 +19,6 @@ instructions: disable_if: condition: runtime env_var: TESTED_MODULE_COIN - equals_value: qtbase + contains_value: qtbase userMessageOnFailure: > Failed to install package. diff --git a/coin/instructions/call_target_install.yaml b/coin/instructions/call_target_install.yaml index 6684ec1062..f2a7fc10ef 100644 --- a/coin/instructions/call_target_install.yaml +++ b/coin/instructions/call_target_install.yaml @@ -8,7 +8,7 @@ instructions: enable_if: condition: runtime env_var: TESTED_MODULE_COIN - equals_value: qtbase + contains_value: qtbase userMessageOnFailure: > Failed to install package. - type: ExecuteCommand @@ -19,6 +19,6 @@ instructions: disable_if: condition: runtime env_var: TESTED_MODULE_COIN - equals_value: qtbase + contains_value: qtbase userMessageOnFailure: > Failed to install package. diff --git a/coin/instructions/cmake_build_and_upload_test_artifacts.yaml b/coin/instructions/cmake_build_and_upload_test_artifacts.yaml index 7fa663e4d2..0a37ecc602 100644 --- a/coin/instructions/cmake_build_and_upload_test_artifacts.yaml +++ b/coin/instructions/cmake_build_and_upload_test_artifacts.yaml @@ -71,6 +71,11 @@ instructions: maxTimeBetweenOutput: 1200 # INTEGRITY artifacts aren't used. disable_if: - condition: property - property: target.osVersion - equals_value: INTEGRITY + condition: or + conditions: + - condition: property + property: target.osVersion + equals_value: INTEGRITY + - condition: property + property: features + contains_value: DoNotUploadTests diff --git a/coin/instructions/cmake_build_and_upload_test_artifacts_host.yaml b/coin/instructions/cmake_build_and_upload_test_artifacts_host.yaml index 3592ac4270..bc16368fc2 100644 --- a/coin/instructions/cmake_build_and_upload_test_artifacts_host.yaml +++ b/coin/instructions/cmake_build_and_upload_test_artifacts_host.yaml @@ -13,6 +13,11 @@ instructions: variableValue: "{{.Env.COMMON_TEST_CMAKE_ARGS}}" - !include "{{qt/qtbase}}/cmake_build_and_upload_test_artifacts.yaml" disable_if: - condition: property - property: features - contains_value: DisableTests + condition: or + conditions: + - condition: property + property: features + contains_value: DisableTests + - condition: property + property: features + contains_value: DoNotBuildTests diff --git a/coin/instructions/cmake_build_and_upload_test_artifacts_target.yaml b/coin/instructions/cmake_build_and_upload_test_artifacts_target.yaml index be4db4f64e..afc20b98a9 100644 --- a/coin/instructions/cmake_build_and_upload_test_artifacts_target.yaml +++ b/coin/instructions/cmake_build_and_upload_test_artifacts_target.yaml @@ -34,6 +34,11 @@ instructions: variableValue: "{{.Env.COMMON_TARGET_TEST_CMAKE_ARGS}}" - !include "{{qt/qtbase}}/cmake_build_and_upload_test_artifacts.yaml" disable_if: - condition: property - property: features - contains_value: DisableTests + condition: or + conditions: + - condition: property + property: features + contains_value: DisableTests + - condition: property + property: features + contains_value: DoNotBuildTests diff --git a/coin/instructions/cmake_build_standalone_examples.yaml b/coin/instructions/cmake_build_standalone_examples.yaml new file mode 100644 index 0000000000..ecc0d3a23b --- /dev/null +++ b/coin/instructions/cmake_build_standalone_examples.yaml @@ -0,0 +1,32 @@ +type: Group +instructions: + - type: ChangeDirectory + directory: "{{.SourceDir}}" + - type: MakeDirectory + directory: "{{.SourceDir}}_standalone_examples" + - type: SetBuildDirectory + directory: "{{.SourceDir}}_standalone_examples" + - type: ChangeDirectory + directory: "{{.BuildDir}}" + - type: AppendToEnvironmentVariable + variableName: COIN_CMAKE_ARGS + variableValue: " -S {{.SourceDir}} -B ." + disable_if: + condition: runtime + env_var: COIN_CMAKE_ARGS + equals_value: null + - type: EnvironmentVariable + variableName: COIN_CMAKE_ARGS + variableValue: "-S {{.SourceDir}} -B ." + enable_if: + condition: runtime + env_var: COIN_CMAKE_ARGS + equals_value: null + + - !include "{{qt/qtbase}}/call_cmake_for_standalone_examples.yaml" + - type: ExecuteCommand + command: "{{.Env.EXAMPLES_ENV_PREFIX}} cmake --build . --parallel -v" + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 4800 + userMessageOnFailure: > + Failed to build examples. diff --git a/coin/instructions/cmake_build_standalone_examples_host.yaml b/coin/instructions/cmake_build_standalone_examples_host.yaml new file mode 100644 index 0000000000..47f5ea05d3 --- /dev/null +++ b/coin/instructions/cmake_build_standalone_examples_host.yaml @@ -0,0 +1,16 @@ +type: Group +instructions: + - type: EnvironmentVariable + variableName: EXAMPLES_ENV_PREFIX + variableValue: "{{.Env.ENV_PREFIX}}" + - type: EnvironmentVariable + variableName: INSTALL_DIR_FOR_EXAMPLES + variableValue: "{{.InstallDir}}" + - type: EnvironmentVariable + variableName: COIN_CMAKE_ARGS + variableValue: "{{.Env.COMMON_EXAMPLES_CMAKE_ARGS}}" + - !include "{{qt/qtbase}}/cmake_build_standalone_examples.yaml" +enable_if: + condition: property + property: features + contains_value: StandaloneExamples diff --git a/coin/instructions/cmake_build_standalone_examples_target.yaml b/coin/instructions/cmake_build_standalone_examples_target.yaml new file mode 100644 index 0000000000..faf7300430 --- /dev/null +++ b/coin/instructions/cmake_build_standalone_examples_target.yaml @@ -0,0 +1,30 @@ +type: Group +instructions: + - type: EnvironmentVariable + variableName: EXAMPLES_ENV_PREFIX + variableValue: "{{.Env.TARGET_ENV_PREFIX}}" + - type: EnvironmentVariable + variableName: INSTALL_DIR_FOR_EXAMPLES + variableValue: "{{.InstallDir}}\\target" + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: EnvironmentVariable + variableName: INSTALL_DIR_FOR_EXAMPLES + variableValue: "{{.InstallDir}}/target" + # TODO: Might need android multi-abi support whenever we decide to build examples for that + # config. See 7b9bb698b93e747e02bf6ab8310c439867318f8e in qtbase and how the instructions + # were modified for multi-abi android tests. + disable_if: + condition: property + property: host.os + equals_value: Windows + - type: EnvironmentVariable + variableName: COIN_CMAKE_ARGS + variableValue: "{{.Env.COMMON_TARGET_EXAMPLES_CMAKE_ARGS}}" + - !include "{{qt/qtbase}}/cmake_build_standalone_examples.yaml" +enable_if: + condition: property + property: features + contains_value: StandaloneExamples diff --git a/coin/instructions/cmake_cross_compilation_module_build_instructions.yaml b/coin/instructions/cmake_cross_compilation_module_build_instructions.yaml index 4541088285..a62ab0f48e 100644 --- a/coin/instructions/cmake_cross_compilation_module_build_instructions.yaml +++ b/coin/instructions/cmake_cross_compilation_module_build_instructions.yaml @@ -61,9 +61,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - type: EnvironmentVariable variableName: COIN_CMAKE_INSTALL_LIBEXEC_DIR variableValue: "{{.InstallDir}}{{.Env.CI_PATH_SEP}}host{{.Env.CI_PATH_SEP}}bin" @@ -73,9 +78,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - !include "{{qt/qtbase}}/call_host_install.yaml" - type: EnvironmentVariable variableName: DESTDIR @@ -123,9 +133,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - type: EnvironmentVariable variableName: COIN_CMAKE_INSTALL_LIBEXEC_DIR variableValue: "{{.InstallDir}}{{.Env.CI_PATH_SEP}}target{{.Env.CI_PATH_SEP}}bin" @@ -135,9 +150,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - !include "{{qt/qtbase}}/call_target_install.yaml" - type: EnvironmentVariable variableName: DESTDIR @@ -154,5 +174,6 @@ instructions: - type: EnvironmentVariable variableName: COIN_CONFIG_TYPE variableValue: "Target" + - !include "{{qt/qtbase}}/cmake_build_standalone_examples_target.yaml" - !include "{{qt/qtbase}}/qmake/get_qmake_location_target.yaml" - !include "{{qt/qtbase}}/qmake_examples/build_qmake_examples_instructions.yaml" diff --git a/coin/instructions/cmake_cross_compilation_qtbase_build_instructions.yaml b/coin/instructions/cmake_cross_compilation_qtbase_build_instructions.yaml index 4a1ed61328..84dc535b61 100644 --- a/coin/instructions/cmake_cross_compilation_qtbase_build_instructions.yaml +++ b/coin/instructions/cmake_cross_compilation_qtbase_build_instructions.yaml @@ -47,9 +47,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - type: EnvironmentVariable variableName: COIN_CMAKE_BUILD_LIBEXEC_DIR variableValue: "{{.BuildDir}}{{.Env.CI_PATH_SEP}}bin" @@ -59,9 +64,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - !include "{{qt/qtbase}}/call_host_install.yaml" - type: EnvironmentVariable variableName: DESTDIR @@ -124,9 +134,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - type: EnvironmentVariable variableName: COIN_CMAKE_BUILD_LIBEXEC_DIR variableValue: "{{.Env.COIN_CMAKE_BUILD_DIR}}{{.Env.CI_PATH_SEP}}bin" @@ -136,9 +151,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - !include "{{qt/qtbase}}/call_target_install.yaml" - type: EnvironmentVariable variableName: DESTDIR @@ -155,5 +175,6 @@ instructions: - type: EnvironmentVariable variableName: COIN_CONFIG_TYPE variableValue: "Target" + - !include "{{qt/qtbase}}/cmake_build_standalone_examples_target.yaml" - !include "{{qt/qtbase}}/qmake/get_qmake_location_target.yaml" - !include "{{qt/qtbase}}/qmake_examples/build_qmake_examples_instructions.yaml" diff --git a/coin/instructions/cmake_module_build_instructions.yaml b/coin/instructions/cmake_module_build_instructions.yaml index 88717ba206..262fbfe540 100644 --- a/coin/instructions/cmake_module_build_instructions.yaml +++ b/coin/instructions/cmake_module_build_instructions.yaml @@ -84,6 +84,9 @@ instructions: - condition: property property: features contains_value: Packaging + - condition: property + property: host.arch + equals_value: X86_64 # Sign only on X86 until Coin has support for arm signing directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" maxTimeInSeconds: 1200 maxTimeBetweenOutput: 1200 @@ -95,5 +98,6 @@ instructions: - type: EnvironmentVariable variableName: COIN_CONFIG_TYPE variableValue: "Host" + - !include "{{qt/qtbase}}/cmake_build_standalone_examples_host.yaml" - !include "{{qt/qtbase}}/qmake/get_qmake_location_host.yaml" - !include "{{qt/qtbase}}/qmake_examples/build_qmake_examples_instructions.yaml" diff --git a/coin/instructions/cmake_qtbase_build_instructions.yaml b/coin/instructions/cmake_qtbase_build_instructions.yaml index b5cd9f60b7..05c05d0bfb 100644 --- a/coin/instructions/cmake_qtbase_build_instructions.yaml +++ b/coin/instructions/cmake_qtbase_build_instructions.yaml @@ -41,9 +41,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - type: EnvironmentVariable variableName: COIN_CMAKE_BUILD_LIBEXEC_DIR variableValue: "{{.Env.COIN_CMAKE_BUILD_DIR}}{{.Env.CI_PATH_SEP}}bin" @@ -53,9 +58,14 @@ instructions: - condition: property property: host.os equals_value: Windows - - condition: property - property: target.osVersion - not_in_values: [WebAssembly, Android_ANY] + - condition: and + conditions: + - condition: property + property: target.os + not_equals_value: QNX + - condition: property + property: target.osVersion + not_in_values: [WebAssembly, Android_ANY] - !include "{{qt/qtbase}}/call_host_install.yaml" - type: EnvironmentVariable variableName: DESTDIR @@ -71,6 +81,9 @@ instructions: - condition: property property: features contains_value: Packaging + - condition: property + property: host.arch + equals_value: X86_64 # Sign only on X86 until Coin has support for arm signing directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" maxTimeInSeconds: 1200 maxTimeBetweenOutput: 1200 @@ -82,5 +95,6 @@ instructions: - type: EnvironmentVariable variableName: COIN_CONFIG_TYPE variableValue: "Host" + - !include "{{qt/qtbase}}/cmake_build_standalone_examples_host.yaml" - !include "{{qt/qtbase}}/qmake/get_qmake_location_host.yaml" - !include "{{qt/qtbase}}/qmake_examples/build_qmake_examples_instructions.yaml" diff --git a/coin/instructions/cmake_regular_test_instructions.yaml b/coin/instructions/cmake_regular_test_instructions.yaml index 5d3571c5d8..4b21c47b72 100644 --- a/coin/instructions/cmake_regular_test_instructions.yaml +++ b/coin/instructions/cmake_regular_test_instructions.yaml @@ -1,8 +1,15 @@ type: Group instructions: - - !include "{{qt/qtbase}}/cmake_regular_test_instructions_common.yaml" - - !include "{{qt/qtbase}}/cmake_run_ctest_ignore_exit_code.yaml" -disable_if: - condition: property - property: configureArgs - contains_value: "-DBUILD_SHARED_LIBS=OFF" + - type: MakeDirectory + directory: "{{.SourceDir}}_standalone_tests" + - type: InstallTestBinaryArchive + relativeStoragePath: "{{.Env.MODULE_ARTIFACTS_RELATIVE_STORAGE_PATH}}/tests.tar.gz" + directory: "{{.SourceDir}}_standalone_tests" + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: > + Failed to install tests archive. + - type: ChangeDirectory + directory: "{{.SourceDir}}_standalone_tests" + + - !include "{{qt/qtbase}}/cmake_run_ctest.yaml" diff --git a/coin/instructions/cmake_regular_test_instructions_common.yaml b/coin/instructions/cmake_regular_test_instructions_common.yaml deleted file mode 100644 index ec6f23a3f7..0000000000 --- a/coin/instructions/cmake_regular_test_instructions_common.yaml +++ /dev/null @@ -1,13 +0,0 @@ -type: Group -instructions: - - type: MakeDirectory - directory: "{{.SourceDir}}_standalone_tests" - - type: InstallTestBinaryArchive - relativeStoragePath: "{{.Env.MODULE_ARTIFACTS_RELATIVE_STORAGE_PATH}}/tests.tar.gz" - directory: "{{.SourceDir}}_standalone_tests" - maxTimeInSeconds: 1200 - maxTimeBetweenOutput: 1200 - userMessageOnFailure: > - Failed to install tests archive. - - type: ChangeDirectory - directory: "{{.SourceDir}}_standalone_tests" diff --git a/coin/instructions/cmake_regular_test_instructions_enforced.yaml b/coin/instructions/cmake_regular_test_instructions_enforced.yaml deleted file mode 100644 index 197b925c2a..0000000000 --- a/coin/instructions/cmake_regular_test_instructions_enforced.yaml +++ /dev/null @@ -1,4 +0,0 @@ -type: Group -instructions: - - !include "{{qt/qtbase}}/cmake_regular_test_instructions_common.yaml" - - !include "{{qt/qtbase}}/cmake_run_ctest_enforce_exit_code.yaml" diff --git a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml b/coin/instructions/cmake_run_ctest.yaml index 8a381992fd..e51c9bbd76 100644 --- a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml +++ b/coin/instructions/cmake_run_ctest.yaml @@ -51,9 +51,24 @@ instructions: condition: property property: host.os equals_value: Windows + + # Keep the testrun quiet for ASAN testruns, since there are FAILs happening all over the place... - type: EnvironmentVariable variableName: CTEST_ARGS variableValue: "-V" + disable_if: + condition: property + property: features + contains_value: UseAddressSanitizer + # ...and only print the output from a failing test, i.e. test with ASAN errors. + - type: EnvironmentVariable + variableName: CTEST_OUTPUT_ON_FAILURE + variableValue: "1" + enable_if: + condition: property + property: features + contains_value: UseAddressSanitizer + - type: AppendToEnvironmentVariable variableName: CTEST_ARGS variableValue: " --stop-on-failure" @@ -61,14 +76,65 @@ instructions: condition: property property: features contains_value: AbortTestingOnFirstFailure - - type: ExecuteCommand - command: "{{.Env.TESTS_ENV_PREFIX}} ctest {{.Env.CTEST_ARGS}}" - executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution - ignoreExitCode: false - maxTimeInSeconds: 10800 - maxTimeBetweenOutput: 900 - userMessageOnFailure: > - Failed to run tests. + + # Enable CTest's JUnit XML summary only for recent versions + - type: AppendToEnvironmentVariable + variableName: CTEST_ARGS + variableValue: " --output-junit {{.Env.COIN_CTEST_RESULTSDIR}}{{.Env.CI_PATH_SEP}}test_summary.ctest_junit_xml" + enable_if: + condition: runtime + env_var: CMAKE_MIN_SUPPORTED_BIN_PATH + equals_value: null + + - !include "{{qt/qtbase}}/coin_module_test_android_start_emulator.yaml" + + - type: EnvironmentVariable + variableName: COIN_CROSS_PLATFORM_VERSION_TEST + variableValue: "TRUE" + enable_if: + condition: and + conditions: + - condition: property + property: platformDependency + not_equals_value: null + - condition: property + property: platformDependency.target.osVersion + not_equals_property: target.osVersion + - condition: property + property: features + contains_value: TestOnly + + # Run CTest, with or without ignoring exit code + # FIXME: De-duplicate the CTest instruction when + # ignoreExitCode expands environment variables. + - type: Group + enable_if: + condition: runtime + env_var: COIN_CTEST_IGNORE_EXIT_CODE + not_equals_value: "1" + instructions: + - type: ExecuteCommand + command: "{{.Env.TESTS_ENV_PREFIX}} ctest {{.Env.CTEST_ARGS}}" + executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution + ignoreExitCode: false + maxTimeInSeconds: 10800 + maxTimeBetweenOutput: "{{.Env.COIN_COMMAND_OUTPUT_TIMEOUT}}" + userMessageOnFailure: > + Failed to run tests. + - type: Group + enable_if: + condition: runtime + env_var: COIN_CTEST_IGNORE_EXIT_CODE + equals_value: "1" + instructions: + - type: ExecuteCommand + command: "{{.Env.TESTS_ENV_PREFIX}} ctest {{.Env.CTEST_ARGS}}" + executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution + ignoreExitCode: true + maxTimeInSeconds: 10800 + maxTimeBetweenOutput: "{{.Env.COIN_COMMAND_OUTPUT_TIMEOUT}}" + userMessageOnFailure: > + Failed to run tests. - type: Group instructions: diff --git a/coin/instructions/cmake_run_ctest_ignore_exit_code.yaml b/coin/instructions/cmake_run_ctest_ignore_exit_code.yaml deleted file mode 100644 index b94717730b..0000000000 --- a/coin/instructions/cmake_run_ctest_ignore_exit_code.yaml +++ /dev/null @@ -1,20 +0,0 @@ -type: Group -instructions: - - type: EnvironmentVariable - variableName: CTEST_ARGS - variableValue: "-V --rerun-failed --force-new-ctest-process" - - type: AppendToEnvironmentVariable - variableName: CTEST_ARGS - variableValue: " --stop-on-failure" - enable_if: - condition: property - property: features - contains_value: AbortTestingOnFirstFailure - - type: ExecuteCommand - command: "{{.Env.TESTS_ENV_PREFIX}} ctest {{.Env.CTEST_ARGS}}" - executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution - ignoreExitCode: true - maxTimeInSeconds: 10800 - maxTimeBetweenOutput: 900 - userMessageOnFailure: > - Failed to run tests. diff --git a/coin/instructions/coin_module_axivion_template_v2.yaml b/coin/instructions/coin_module_axivion_template_v2.yaml index 0eebe34e0d..87d32f5d37 100644 --- a/coin/instructions/coin_module_axivion_template_v2.yaml +++ b/coin/instructions/coin_module_axivion_template_v2.yaml @@ -38,7 +38,7 @@ build_environment_axivion: &build_environment_axivion maxTimeBetweenOutput: 100 userMessageOnFailure: "Create mount point for results failed" - type: ExecuteCommand - command: ["sudo", "mount", "-o", "rw", "10.212.0.93:/data/axivion", "/data/axivion"] + command: ["sudo", "mount", "-t", "nfs", "-o", "rw,nfsvers=3", "10.212.0.93:/data/axivion", "/data/axivion"] maxTimeInSeconds: 100 maxTimeBetweenOutput: 100 userMessageOnFailure: "Mount failed" @@ -92,7 +92,7 @@ instructions: - *build_environment_axivion - *analysis_instructions_axivion enable_if: - condition: property - property: features - contains_value: Axivion + condition: runtime + env_var: AXIVION_ANALYSIS + equals_value: "1" diff --git a/coin/instructions/coin_module_build_template_v2.yaml b/coin/instructions/coin_module_build_template_v2.yaml index 2b36fb1c95..e7f47328e8 100644 --- a/coin/instructions/coin_module_build_template_v2.yaml +++ b/coin/instructions/coin_module_build_template_v2.yaml @@ -20,25 +20,25 @@ instructions: equals_property: target.os - condition: property property: target.osVersion - not_in_values: [QEMU, WebAssembly, INTEGRITY] + not_in_values: [QEMU, WebAssembly, INTEGRITY, VxWorks] - condition: property property: features not_contains_value: "TargetBuildOnly" - condition: property property: features not_contains_value: "DebianPackaging" - - condition: property - property: features - not_contains_value: Axivion + - condition: runtime + env_var: AXIVION_ANALYSIS + not_equals_value: "1" - type: Group instructions: - !include "{{qt/qtbase}}/coin_module_axivion_template_v2.yaml" enable_if: condition: and conditions: - - condition: property - property: features - contains_value: Axivion + - condition: runtime + env_var: AXIVION_ANALYSIS + equals_value: "1" - condition: runtime env_var: TESTED_MODULE_COIN not_equals_value: "qtdoc" @@ -60,13 +60,13 @@ instructions: enable_if: condition: property property: target.osVersion - in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY] + in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY, VxWorks] enable_if: condition: or conditions: - condition: property property: target.osVersion - in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY] + in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY, VxWorks] - condition: and conditions: - condition: property diff --git a/coin/instructions/coin_module_test_android_start_emulator.yaml b/coin/instructions/coin_module_test_android_start_emulator.yaml index 105b3f1038..eff28ff494 100644 --- a/coin/instructions/coin_module_test_android_start_emulator.yaml +++ b/coin/instructions/coin_module_test_android_start_emulator.yaml @@ -3,10 +3,10 @@ instructions: - type: Group instructions: - type: ExecuteCommand - command: "{{.Env.LIBEXEC_INSTALL_DIR}}/android_emulator_launcher.sh" + command: "{{.Env.ANDROID_EMULATOR_RUNNER}}" maxTimeInSeconds: 600 maxTimeBetweenOutput: 300 - userMessageOnFailure: "Failed to start emulator, check coin log and ~/emulator.log" + userMessageOnFailure: "Failed to start emulator, check coin log and testresults log files." enable_if: condition: property property: features diff --git a/coin/instructions/coin_module_test_template_common.yaml b/coin/instructions/coin_module_test_template_common.yaml index 16fac8dd5d..19c51e23c6 100644 --- a/coin/instructions/coin_module_test_template_common.yaml +++ b/coin/instructions/coin_module_test_template_common.yaml @@ -2,7 +2,6 @@ type: Group instructions: # The build env is needed on MSVC so that tst_qmake can properly build apps / libraries. - !include "{{qt/qtbase}}/prepare_building_env.yaml" - - !include "{{qt/qtbase}}/coin_module_test_android_start_emulator.yaml" - !include "{{qt/qtbase}}/coin_module_test_qnx_start_emulator.yaml" # The test env vars are needed to pick the proper prefix.bat file. - !include "{{qt/qtbase}}/cmake_setup_running_tests_env_vars.yaml" diff --git a/coin/instructions/coin_module_test_template_v2.yaml b/coin/instructions/coin_module_test_template_v2.yaml index 423d292bf7..3776584689 100644 --- a/coin/instructions/coin_module_test_template_v2.yaml +++ b/coin/instructions/coin_module_test_template_v2.yaml @@ -5,6 +5,9 @@ instructions: - !include "{{qt/qtbase}}/coin_module_test_template_common.yaml" - type: Group instructions: + - type: EnvironmentVariable + variableName: COIN_CTEST_IGNORE_EXIT_CODE + variableValue: "1" - !include "{{qt/qtbase}}/cmake_regular_test_instructions.yaml" enable_if: condition: or diff --git a/coin/instructions/coin_module_test_template_v3.yaml b/coin/instructions/coin_module_test_template_v3.yaml index de870b9d45..83b40c141b 100644 --- a/coin/instructions/coin_module_test_template_v3.yaml +++ b/coin/instructions/coin_module_test_template_v3.yaml @@ -5,7 +5,7 @@ instructions: - !include "{{qt/qtbase}}/coin_module_test_template_common.yaml" - type: Group instructions: - - !include "{{qt/qtbase}}/cmake_regular_test_instructions_enforced.yaml" + - !include "{{qt/qtbase}}/cmake_regular_test_instructions.yaml" enable_if: condition: or conditions: diff --git a/coin/instructions/coin_qtbase_build_template_v2.yaml b/coin/instructions/coin_qtbase_build_template_v2.yaml index e5ae8068e4..bcba742781 100644 --- a/coin/instructions/coin_qtbase_build_template_v2.yaml +++ b/coin/instructions/coin_qtbase_build_template_v2.yaml @@ -13,23 +13,23 @@ instructions: equals_property: target.os - condition: property property: target.osVersion - not_in_values: [QEMU, WebAssembly, INTEGRITY] + not_in_values: [QEMU, WebAssembly, INTEGRITY, VxWorks] - condition: property property: features not_contains_value: "TargetBuildOnly" - condition: property property: features not_contains_value: "DebianPackaging" - - condition: property - property: features - not_contains_value: Axivion + - condition: runtime + env_var: AXIVION_ANALYSIS + not_equals_value: "1" - type: Group instructions: - !include "{{qt/qtbase}}/coin_module_axivion_template_v2.yaml" enable_if: - condition: property - property: features - contains_value: Axivion + condition: runtime + env_var: AXIVION_ANALYSIS + equals_value: "1" - type: Group instructions: - type: Group @@ -51,13 +51,13 @@ instructions: enable_if: condition: property property: target.osVersion - in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY] + in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY, VxWorks] enable_if: condition: or conditions: - condition: property property: target.osVersion - in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY] + in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY, VxWorks] - condition: and conditions: - condition: property diff --git a/coin/instructions/debian/debian_build_module.yaml b/coin/instructions/debian/debian_build_module.yaml index 4591ddd5ea..0aa239e1c6 100644 --- a/coin/instructions/debian/debian_build_module.yaml +++ b/coin/instructions/debian/debian_build_module.yaml @@ -32,6 +32,28 @@ instructions: condition: runtime env_var: COIN_SKIP_DEBIAN contains_value: "MISSING_DEBIAN_INST" + - type: ChangeDirectory + directory: "qt6-{{.Env.TESTED_MODULE_PLAIN_COIN}}" + disable_if: + condition: runtime + env_var: COIN_SKIP_DEBIAN + contains_value: "MISSING_DEBIAN_INST" + - type: ExecuteCommand + command: "git checkout {{.Env.DEBIAN_RULES_REF}}" + maxTimeInSeconds: 900 + maxTimeBetweenOutput: 900 + userMessageOnFailure: "Failed to checkout debian rules branch" + disable_if: + condition: or + conditions: + - condition: runtime + env_var: DEBIAN_RULES_REF + equals_value: null + - condition: runtime + env_var: COIN_SKIP_DEBIAN + contains_value: "MISSING_DEBIAN_INST" + - type: ChangeDirectory + directory: "{{.AgentWorkingDir}}" - type: ExecuteCommand command: "wget -q {{.CoinDownloadURL}}/{{.Env.MODULE_SOURCES_RELATIVE_STORAGE_PATH}}" maxTimeInSeconds: 900 @@ -81,15 +103,16 @@ instructions: contains_value: "MISSING_DEBIAN_INST" - type: ExecuteCommand command: ["sbuild", - "--build-dep-resolver=aptitude", - "-sAd", "tqtc-focal", + "--build-dep-resolver=apt", + "-sAd", "{{.Env.COIN_TARGET_DIST}}", "-c", "{{.Env.COIN_SBUILD_CHROOT}}", "--build-dir", "output/debian_packages", + "--extra-repository={{.Env.COIN_EXTRA_DEBIAN_REPO}}", + "--extra-package={{.Env.COIN_EXTRA_DEBIAN_PACKAGES}}", "--extra-package={{.AgentWorkingDir}}/debian_packages/", - "--extra-package={{.AgentWorkingDir}}/output/debian_packages/", "qt-{{.Env.QT_REPO_MODULE_VERSION}}-{{.Env.TESTED_MODULE_PLAIN_COIN}}-src_{{.Env.QT_REPO_MODULE_VERSION}}-1.dsc"] maxTimeInSeconds: 18000 - maxTimeBetweenOutput: 1800 + maxTimeBetweenOutput: 18000 userMessageOnFailure: "Failed build debian packages" disable_if: condition: runtime diff --git a/coin/instructions/debian/prepare_debian_env.yaml b/coin/instructions/debian/prepare_debian_env.yaml index aa23576cf3..c51de2103c 100644 --- a/coin/instructions/debian/prepare_debian_env.yaml +++ b/coin/instructions/debian/prepare_debian_env.yaml @@ -5,19 +5,36 @@ enable_if: contains_value: DebianPackaging instructions: - type: EnvironmentVariable + variableName: COIN_TARGET_DIST + variableValue: "tqtc-focal" + enable_if: + condition: runtime + env_var: COIN_TARGET_DIST + equals_value: null + - type: EnvironmentVariable variableName: COIN_SBUILD_CHROOT variableValue: "stable-arm64-sbuild" enable_if: - condition: property - property: target.arch - equals_value: AARCH64 + condition: and + conditions: + - condition: runtime + env_var: COIN_SBUILD_CHROOT + equals_value: null + - condition: property + property: target.arch + equals_value: AARCH64 - type: EnvironmentVariable variableName: COIN_SBUILD_CHROOT variableValue: "stable-amd64-sbuild" - disable_if: - condition: property - property: target.arch - equals_value: AARCH64 + enable_if: + condition: and + conditions: + - condition: runtime + env_var: COIN_SBUILD_CHROOT + equals_value: null + - condition: property + property: target.arch + equals_value: X86_64 - type: EnvironmentVariable variableName: COIN_SBUILD_DISTRO variableValue: "arm64-focal" @@ -37,47 +54,10 @@ instructions: variableName: COIN_SKIP_DEBIAN variableValue: "MISSING_DEBIAN_INST" enable_if: - condition: or - conditions: - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtquick3dphysics" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtquickeffectmaker" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtspeech" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtlocation" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qthttpserver" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtactiveqt" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtcoap" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtmqtt" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtopcua" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtgrpc" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtqa" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qtdoc" - - condition: runtime - env_var: TESTED_MODULE_COIN - equals_value: "qt5" + condition: runtime + env_var: COIN_SKIP_DEBIAN_MODULES + contains_value: "{{.Env.TESTED_MODULE_COIN}}" + # Set version info to environment - type: ParseEnvironmentVariableFromFile regex: "QT_REPO_MODULE_VERSION \"(?P<QT_REPO_MODULE_VERSION>.*)\"" diff --git a/coin/instructions/prepare_building_env.yaml b/coin/instructions/prepare_building_env.yaml index f816ef56ea..a3276cb139 100644 --- a/coin/instructions/prepare_building_env.yaml +++ b/coin/instructions/prepare_building_env.yaml @@ -26,6 +26,16 @@ instructions: property: host.os equals_value: Windows + # Enable Axivion_analysis for Qt + - type: EnvironmentVariable + variableName: AXIVION_ANALYSIS + variableValue: "1" + enable_if: + condition: property + property: features + contains_value: Axivion + + # Export ICC specific env. variables - type: Group instructions: @@ -123,9 +133,26 @@ instructions: variableName: TARGET_ARCHITECTURE variableValue: x64_arm64 enable_if: - condition: property - property: target.arch - equals_value: ARM64 + condition: and + conditions: + - condition: property + property: target.arch + equals_value: ARM64 + - condition: property + property: host.arch + equals_value: X86_64 + - type: EnvironmentVariable + variableName: TARGET_ARCHITECTURE + variableValue: arm64 + enable_if: + condition: and + conditions: + - condition: property + property: target.arch + in_values: ["AARCH64", "ARM64"] + - condition: property + property: host + equals_property: target - type: EnvironmentVariable # HACK. Overwrite TARGET_ARCHITECTURE as we do not use standard MSVC cross # compilation targets here. The target architecture will be detected by Qt. @@ -305,6 +332,14 @@ instructions: condition: property property: target.osVersion in_values: [QEMU] + # This fixes an issue where binfmts is sometimes disabled on the test VMs + - type: ExecuteCommand + command: sudo update-binfmts --enable + userMessageOnFailure: "Failed to enable binfmts" + enable_if: + condition: property + property: target.osVersion + equals_value: QEMU # Windows on Arm, cross-compilation with MSVC - type: Group @@ -322,6 +357,17 @@ instructions: variableName: TARGET_ENV_PREFIX variableValue: "c:\\users\\qt\\prefix.bat" + # VxWorks + - type: Group + enable_if: + condition: property + property: target.osVersion + equals_value: VxWorks + instructions: + - type: EnvironmentVariable + variableName: TARGET_ENV_PREFIX + variableValue: "{{.Env.VXWORKS_HOME}}/wrenv.linux" + # QNX variables - type: Group enable_if: @@ -427,6 +473,93 @@ instructions: property: features contains_value: UseConfigure + # Packaging + - type: Group + enable_if: + condition: property + property: features + contains_value: Packaging + instructions: + - type: AppendToEnvironmentVariable + variableName: COMMON_CMAKE_ARGS + variableValue: " -DQT_INSTALL_CONFIG_INFO_FILES=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_NON_QTBASE_CMAKE_ARGS + variableValue: " -DQT_INSTALL_CONFIG_INFO_FILES=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_TARGET_CMAKE_ARGS + variableValue: " -DQT_INSTALL_CONFIG_INFO_FILES=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_NON_QTBASE_TARGET_CMAKE_ARGS + variableValue: " -DQT_INSTALL_CONFIG_INFO_FILES=ON" + + # SBOM + - type: Group + enable_if: + condition: property + property: features + contains_value: GenerateSBOM + instructions: + - type: AppendToEnvironmentVariable + variableName: COMMON_CMAKE_ARGS + variableValue: " -DQT_GENERATE_SBOM=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_NON_QTBASE_CMAKE_ARGS + variableValue: " -DQT_GENERATE_SBOM=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_TARGET_CMAKE_ARGS + variableValue: " -DQT_GENERATE_SBOM=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_NON_QTBASE_TARGET_CMAKE_ARGS + variableValue: " -DQT_GENERATE_SBOM=ON" + + # SBOM Python apps path. On Windows python-installed apps are + # in the same directory where pip is, aka Scripts sub-directory. + - type: EnvironmentVariable + variableName: SBOM_PYTHON_APPS_PATH + variableValue: "{{.Env.PIP3_PATH}}" + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: EnvironmentVariable + variableName: SBOM_PYTHON_APPS_PATH + variableValue: "{{.Env.PYTHON3_PATH}}" + disable_if: + condition: property + property: host.os + equals_value: Windows + + + # SBOM verification and auditing + - type: Group + enable_if: + condition: property + property: features + contains_value: VerifySBOM + instructions: + - type: EnvironmentVariable + variableName: SBOM_COMMON_ARGS + variableValue: >- + -DQT_INTERNAL_NO_SBOM_FIND_PYTHON_FRAMEWORK=ON + -DQT_INTERNAL_SBOM_DEFAULT_CHECKS=ON + -DQT_INTERNAL_SBOM_AUDIT=ON + -DQT_INTERNAL_SBOM_AUDIT_NO_ERROR=ON + -DQT_SBOM_PYTHON_INTERP={{.Env.PYTHON3_PATH}} + -DQT_SBOM_PYTHON_APPS_PATH={{.Env.SBOM_PYTHON_APPS_PATH}} + - type: AppendToEnvironmentVariable + variableName: COMMON_CMAKE_ARGS + variableValue: " {{.Env.SBOM_COMMON_ARGS}} " + - type: AppendToEnvironmentVariable + variableName: COMMON_NON_QTBASE_CMAKE_ARGS + variableValue: " {{.Env.SBOM_COMMON_ARGS}} " + - type: AppendToEnvironmentVariable + variableName: COMMON_TARGET_CMAKE_ARGS + variableValue: " {{.Env.SBOM_COMMON_ARGS}} " + - type: AppendToEnvironmentVariable + variableName: COMMON_NON_QTBASE_TARGET_CMAKE_ARGS + variableValue: " {{.Env.SBOM_COMMON_ARGS}} " + - type: Group instructions: - type: AppendToEnvironmentVariable @@ -438,6 +571,9 @@ instructions: - type: AppendToEnvironmentVariable variableName: COMMON_TEST_CMAKE_ARGS variableValue: " -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS" + - type: AppendToEnvironmentVariable + variableName: COMMON_EXAMPLES_CMAKE_ARGS + variableValue: " -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS" - type: AppendToEnvironmentVariable variableName: COMMON_TARGET_CMAKE_ARGS @@ -448,6 +584,9 @@ instructions: - type: AppendToEnvironmentVariable variableName: COMMON_TARGET_TEST_CMAKE_ARGS variableValue: " -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS" + - type: AppendToEnvironmentVariable + variableName: COMMON_TARGET_EXAMPLES_CMAKE_ARGS + variableValue: " -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS" # Sccache - type: Group @@ -461,6 +600,9 @@ instructions: - type: AppendToEnvironmentVariable variableName: COMMON_TEST_CMAKE_ARGS variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache" + - type: AppendToEnvironmentVariable + variableName: COMMON_EXAMPLES_CMAKE_ARGS + variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache" - type: AppendToEnvironmentVariable variableName: COMMON_TARGET_CMAKE_ARGS @@ -471,6 +613,9 @@ instructions: - type: AppendToEnvironmentVariable variableName: COMMON_TARGET_TEST_CMAKE_ARGS variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache" + - type: AppendToEnvironmentVariable + variableName: COMMON_TARGET_EXAMPLES_CMAKE_ARGS + variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache" enable_if: condition: property property: features @@ -478,6 +623,8 @@ instructions: # Specify a custom examples installation directory, so that the built example binaries are not # packaged into the artifact archive together with the Qt libraries. + # Also specify that during examples deployment, only a subset of examples should be deployed, to + # save time and space. - type: Group instructions: - type: AppendToEnvironmentVariable @@ -486,6 +633,24 @@ instructions: - type: AppendToEnvironmentVariable variableName: COMMON_TARGET_CMAKE_ARGS variableValue: " -DQT_INTERNAL_EXAMPLES_INSTALL_PREFIX={{unixPathSeparators .BuildDir}}/installed_examples" + - type: AppendToEnvironmentVariable + variableName: COMMON_CMAKE_ARGS + variableValue: " -DQT_DEPLOY_MINIMAL_EXAMPLES=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_TARGET_CMAKE_ARGS + variableValue: " -DQT_DEPLOY_MINIMAL_EXAMPLES=ON" + - type: Group + instructions: + - type: AppendToEnvironmentVariable + variableName: COMMON_CMAKE_ARGS + variableValue: " -DQT_INTERNAL_CI_NO_BUILD_IN_TREE_EXAMPLES=ON" + - type: AppendToEnvironmentVariable + variableName: COMMON_TARGET_CMAKE_ARGS + variableValue: " -DQT_INTERNAL_CI_NO_BUILD_IN_TREE_EXAMPLES=ON" + enable_if: + condition: property + property: features + contains_value: StandaloneExamples enable_if: # Only set the custom installation dir if examples are built. condition: or @@ -579,3 +744,18 @@ instructions: condition: property property: host.os equals_value: Windows + + - type: EnvironmentVariable + variableName: COIN_COMMAND_OUTPUT_TIMEOUT + variableValue: "900" + disable_if: + condition: property + property: features + contains_value: UseAddressSanitizer + - type: EnvironmentVariable + variableName: COIN_COMMAND_OUTPUT_TIMEOUT + variableValue: "10800" + enable_if: + condition: property + property: features + contains_value: UseAddressSanitizer |