diff options
author | Simo Fält <simo.falt@qt.io> | 2019-07-08 13:21:42 +0300 |
---|---|---|
committer | Simo Fält <simo.falt@qt.io> | 2020-03-17 09:27:45 +0200 |
commit | 27640a1ba975617a4e498c8c1730043637f3f84b (patch) | |
tree | f34a6a850b56cda2a8d0aabd6122c4fbffd1e0cd /coin | |
parent | d98e8e8b62c90ee867e8f25fabca4f3adeeacbea (diff) |
Initial version of module_config.yaml
Change-Id: Ifd6ef236400cf449278e48ccc14ffd8fc4d8b2a8
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
Diffstat (limited to 'coin')
-rw-r--r-- | coin/instructions/common_environment.yaml | 64 | ||||
-rw-r--r-- | coin/instructions/execute_bic_tests.yaml | 40 | ||||
-rw-r--r-- | coin/instructions/execute_license_check.yaml | 27 | ||||
-rw-r--r-- | coin/instructions/find_msvc_compiler.yaml | 62 | ||||
-rw-r--r-- | coin/instructions/install_module_test_artifact.yaml | 8 | ||||
-rw-r--r-- | coin/instructions/make_check_instructions.yaml | 113 | ||||
-rw-r--r-- | coin/instructions/make_documentation.yaml | 18 | ||||
-rw-r--r-- | coin/instructions/make_instructions.yaml | 77 | ||||
-rw-r--r-- | coin/instructions/make_test_plan.yaml | 37 | ||||
-rw-r--r-- | coin/instructions/qmake_module_build.yaml | 31 | ||||
-rw-r--r-- | coin/module_config.yaml | 86 |
11 files changed, 563 insertions, 0 deletions
diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml new file mode 100644 index 000000000..4bef13a71 --- /dev/null +++ b/coin/instructions/common_environment.yaml @@ -0,0 +1,64 @@ +type: Group +instructions: + - type: Group + enable_if: + condition: property + property: target.compiler + in_values: [MSVC2015, MSVC2017, MSVC2019] + instructions: + - type: EnvironmentVariable + variableName: MAKEFLAGS + variableValue: "" + + - type: PrependToEnvironmentVariable + variableName: PATH + variableValue: "{{.InstallDir}}\\bin;" + enable_if: + condition: property + property: target.os + equals_value: Windows + + - type: PrependToEnvironmentVariable + variableName: PATH + variableValue: "C:\\Utils\\gnuwin32\\bin;" + enable_if: + condition: property + property: target.os + equals_value: Windows + + - type: PrependToEnvironmentVariable + variableName: PATH + variableValue: "{{.Env.MINGW730}}\\bin;" + enable_if: + condition: property + property: target.compiler + equals_value: Mingw73 + + - type: PrependToEnvironmentVariable + variableName: PATH + variableValue: "{{.Env.MINGW530}}\\bin;" + enable_if: + condition: property + property: target.compiler + equals_value: Mingw53 + + - type: EnvironmentVariable + variableName: LANG + variableValue: en_US.UTF-8 + enable_if: + condition: property + property: host.os + in_values: [MacOS, Linux] + + - type: Group + instructions: + - type: PrependToEnvironmentVariable + variableName: PATH + variableValue: "{{.InstallDir}}/bin:" + - type: EnvironmentVariable + variableName: DISPLAY + variableValue: ":0" + enable_if: + condition: property + property: host.os + equals_value: Linux diff --git a/coin/instructions/execute_bic_tests.yaml b/coin/instructions/execute_bic_tests.yaml new file mode 100644 index 000000000..9e476d309 --- /dev/null +++ b/coin/instructions/execute_bic_tests.yaml @@ -0,0 +1,40 @@ +type: Group +enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Linux + - condition: property + property: target.os + equals_property: host.os + - condition: property + property: configureArgs + not_contains_value: "-no-widgets" +instructions: + - type: InstallSourceArchive + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + project: qt/qtqa + ref: master + directory: qt/qtqa + userMessageOnFailure: "Could not install qt/qtqa source archive. Please investigate why." + - type: EnvironmentVariable + variableName: QT_MODULE_TO_TEST + variableValue: "{{.SourceDir}}" + - type: ChangeDirectory + directory: "{{.AgentWorkingDir}}/qt/qtqa/tests/postbuild/bic" + - type: ExecuteCommand + command: ['{{.InstallDir}}/bin/qmake'] + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 1800 + userMessageOnFailure: "Failed to run qmake, check logs." + - type: SetExecutionPhaseName + executionPhaseName: "testing {{.AgentWorkingDir}}/qt/qtqa/tests/postbuild/bic" + - type: RunQtUnitTest + directory: "{{.AgentWorkingDir}}/qt/qtqa/tests/postbuild/bic" + runTestCommand: ['make', 'check', '-j1'] + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 600 + testRepetitionAllowance: 1 + userMessageOnFailure: "Failed to execute bic tests." diff --git a/coin/instructions/execute_license_check.yaml b/coin/instructions/execute_license_check.yaml new file mode 100644 index 000000000..95def9a85 --- /dev/null +++ b/coin/instructions/execute_license_check.yaml @@ -0,0 +1,27 @@ +type: Group +instructions: + - type: InstallSourceArchive + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + project: qt/qtqa + ref: master + directory: qt/qtqa + userMessageOnFailure: "Could not install qt/qtqa source archive. Please investigate why." + - type: InstallSourceArchive + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + project: qt/qtbase + ref: dev + directory: qt/qtbase + userMessageOnFailure: "Could not install qt/base source archive. Please investigate why." + - type: ChangeDirectory + directory: "{{.AgentWorkingDir}}" + - type: ExecuteCommand + command: ["perl", "{{.AgentWorkingDir}}/qt/qtqa/tests/prebuild/license/tst_licenses.pl"] + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + userMessageOnFailure: "Running license check failed." +enable_if: + condition: property + property: features + contains_value: LicenseCheck diff --git a/coin/instructions/find_msvc_compiler.yaml b/coin/instructions/find_msvc_compiler.yaml new file mode 100644 index 000000000..f176c224d --- /dev/null +++ b/coin/instructions/find_msvc_compiler.yaml @@ -0,0 +1,62 @@ +# Finds correct msvc compiler for target and writes path to it into "VC_SCRIPT" environment variable +# and write bat script for calling compiler. +type: Group +instructions: + - type: EnvironmentVariable + variableName: VC_SCRIPT + variableValue: "%VS90COMNTOOLS%\\vsvars32.bat" + enable_if: + condition: property + property: host.compiler + equals_value: MSVC2008 + - type: EnvironmentVariable + variableName: VC_SCRIPT + variableValue: "%VS100COMNTOOLS%\\vsvars32.bat" + enable_if: + condition: property + property: host.compiler + equals_value: MSVC2010 + - type: EnvironmentVariable + variableName: VC_SCRIPT + variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio 11.0\\VC\\vcvarsall.bat" + enable_if: + condition: property + property: host.compiler + equals_value: MSVC2012 + - type: EnvironmentVariable + variableName: VC_SCRIPT + variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat" + enable_if: + condition: property + property: host.compiler + equals_value: MSVC2013 + - type: EnvironmentVariable + variableName: VC_SCRIPT + variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat" + enable_if: + condition: property + property: host.compiler + equals_value: MSVC2015 + - type: EnvironmentVariable + variableName: VC_SCRIPT + variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio\\2017\\Professional\\VC\\Auxiliary\\Build\\vcvarsall.bat" + enable_if: + condition: property + property: host.compiler + equals_value: MSVC2017 + - type: EnvironmentVariable + variableName: VC_SCRIPT + variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio\\2019\\Professional\\VC\\Auxiliary\\Build\\vcvarsall.bat" + enable_if: + condition: property + property: host.compiler + equals_value: MSVC2019 + + - type: WriteFile + fileContents: "call \"{{.Env.VC_SCRIPT}}\" {{.Env.TARGET_ARCHITECTURE}} \r\ncmd /c %*" + filename: "c:\\users\\qt\\MSVC.bat" + fileMode: 420 + enable_if: + condition: property + property: host.compiler + in_values: [MSVC2008, MSVC2010, MSVC2012, MSVC2013, MSVC2015, MSVC2017, MSVC2019] diff --git a/coin/instructions/install_module_test_artifact.yaml b/coin/instructions/install_module_test_artifact.yaml new file mode 100644 index 000000000..b308d9838 --- /dev/null +++ b/coin/instructions/install_module_test_artifact.yaml @@ -0,0 +1,8 @@ +type: Group +instructions: + - type: InstallBinaryArchive + relativeStoragePath: "{{.Env.MODULE_ARTIFACTS_RELATIVE_STORAGE_PATH}}/artifacts.tar.gz" + directory: "{{.SourceDir}}" + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: Failed to install tests archive. diff --git a/coin/instructions/make_check_instructions.yaml b/coin/instructions/make_check_instructions.yaml new file mode 100644 index 000000000..a341f53b0 --- /dev/null +++ b/coin/instructions/make_check_instructions.yaml @@ -0,0 +1,113 @@ +type: Group +disable_if: + condition: property + property: features + contains_value: LicenseCheck +instructions: + - type: EnvironmentVariable + variableName: QTEST_ENVIRONMENT + variableValue: "ci" + - type: EnvironmentVariable + variableName: TESTRUNNER + variableValue: "{{.Env.CI_WINRTRUNNER_PATH}}\\winrtrunner.exe" + enable_if: + condition: property + property: target.os + equals_value: WinRT + + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.SourceDir}}/tests" + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + userMessageOnFailure: "Failed to change into tests directory." + - type: ExecuteCommand + command: "{{.InstallDir}}/bin/qmake.exe INSTALL_PREFIX={{.InstallDir}}" + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed running qmake, check logs." + - type: ExecuteCommand + command: Mingw32-make + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to run make, check logs." + - type: ChangeDirectory + directory: "{{.SourceDir}}/tests/auto" + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + userMessageOnFailure: "Failed to change directory." + - type: RunQtUnitTest + directory: "{{.SourceDir}}/tests/auto" + testRepetitionAllowance: 3 + runTestCommand: ["Mingw32-make", "check", "-j1"] + maxTimeInSeconds: 3600 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Test execution failed, check logs." + enable_if: + condition: property + property: target.compiler + in_values: [Mingw53, Mingw73] + + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.SourceDir}}/tests" + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + userMessageOnFailure: "Failed to change into tests directory." + - type: ExecuteCommand + command: "{{.InstallDir}}/bin/qmake INSTALL_PREFIX={{.InstallDir}}" + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed running qmake, check logs." + - type: ExecuteCommand + command: make + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to run make, check logs." + - type: RunQtUnitTest + runTestCommand: ["make", "check", "-j1"] + directory: "{{.SourceDir}}/tests/auto" + testRepetitionAllowance: 3 + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: "Test execution failed, check logs." + enable_if: + condition: property + property: target.compiler + in_values: [GCC, Clang] + + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.SourceDir}}/tests" + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + userMessageOnFailure: "Failed to change into tests directory." + - type: ExecuteCommand + command: "c:{{.InstallDir}}\\bin\\qmake.exe INSTALL_PREFIX={{.InstallDir}}" + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed running qmake, check logs." + - type: ExecuteCommand + command: "jom" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to run jom/make, check logs." + - type: ChangeDirectory + directory: "{{.SourceDir}}/tests/auto" + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + userMessageOnFailure: "Failed to change dir" + - type: RunQtUnitTest + testRepetitionAllowance: 3 + directory: "{{.SourceDir}}/tests/auto" + runTestCommand: ["jom", "check"] + maxTimeInSeconds: 3600 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed to run make check, check logs." + enable_if: + condition: property + property: target.compiler + in_values: [MSVC2013, MSVC2015, MSVC2017, MSVC2019] diff --git a/coin/instructions/make_documentation.yaml b/coin/instructions/make_documentation.yaml new file mode 100644 index 000000000..73097f422 --- /dev/null +++ b/coin/instructions/make_documentation.yaml @@ -0,0 +1,18 @@ +type: Group +enable_if: + condition: property + property: features + contains_value: Documentation +instructions: + - type: ChangeDirectory + directory: "{{.BuildDir}}" + - type: ExecuteCommand + command: ['make', 'docs'] + userMessageOnFailure: 'Could not build documentation.' + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + - type: UploadArtifact + archiveDirectory: '{{.BuildDir}}/doc' + transferType: UploadModuleDocumentation + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 1800 diff --git a/coin/instructions/make_instructions.yaml b/coin/instructions/make_instructions.yaml new file mode 100644 index 000000000..4a4eb2281 --- /dev/null +++ b/coin/instructions/make_instructions.yaml @@ -0,0 +1,77 @@ +type: Group +instructions: + - type: Group + instructions: + - type: ExecuteCommand + command: Mingw32-make + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to run make, check logs." + - type: ExecuteCommand + command: "Mingw32-make -j1 install INSTALL_ROOT={{.InstallRoot}}" + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed to run make install, check logs." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: target.compiler + in_values: [Mingw53, Mingw73, Clang] + + - type: Group + instructions: + - type: ExecuteCommand + command: make + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to run make, check logs." + - type: ExecuteCommand + command: "make install INSTALL_ROOT={{.InstallRoot}}" + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed to run install, check logs." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + not_equals_value: Windows + - condition: property + property: target.compiler + in_values: [GCC, Clang, ICC_17, ICC_18] + + - type: Group + instructions: + - type: ExecuteCommand + command: "jom" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to run jom/make, check logs." + - type: ExecuteCommand + command: "nmake install INSTALL_ROOT={{.InstallRoot}}" + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed to run nmake install, check logs." + enable_if: + condition: property + property: target.compiler + in_values: [MSVC2013, MSVC2015, MSVC2017, MSVC2019] + + - type: SignPackage + directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + enable_if: + condition: property + property: host.os + equals_value: Windows + + - type: UploadArtifact + archiveDirectory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + transferType: UploadModuleBuildArtifact + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 1800 diff --git a/coin/instructions/make_test_plan.yaml b/coin/instructions/make_test_plan.yaml new file mode 100644 index 000000000..cbc57b565 --- /dev/null +++ b/coin/instructions/make_test_plan.yaml @@ -0,0 +1,37 @@ +type: Group +disable_if: + condition: property + property: features + contains_value: DisableTests +instructions: + - type: EnvironmentVariable + variableName: QMAKEFEATURES + variableValue: "{{.AgentWorkingDir}}/test_plan_hook" + - type: WriteFile + fileContents: "load(default_post) +testcase|qmltestcase { !build_pass:contains(TEMPLATE, \".*(lib|app)\"):!insignificant_test:write_file($$PWD/TestLibTestPlan, OUT_PWD, append) } +else:if(ctest_testcase) { !insignificant_test:write_file($$PWD/GeneralTestPlan, OUT_PWD, append) }" + filename: "{{.AgentWorkingDir}}/test_plan_hook/default_post.prf" + fileMode: 420 + - type: ChangeDirectory + directory: "{{.SourceDir}}/tests" + - type: ExecuteCommand + command: "c:{{.BuildDir}}\\bin\\qmake.exe -r {{.SourceDir}}\\tests" + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed running qmake, check logs." + enable_if: + condition: property + property: target.compiler + in_values: [MSVC2013, MSVC2015, MSVC2017, MSVC2019] + - type: ExecuteCommand + command: "{{.BuildDir}}/bin/qmake -r {{.SourceDir}}/tests" + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed running qmake, check logs." + enable_if: + condition: property + property: target.compiler + not_in_values: [MSVC2013, MSVC2015, MSVC2017, MSVC2019] + - type: UploadTestPlan + qtestlibTestPlanPath: "{{.AgentWorkingDir}}/test_plan_hook/TestLibTestPlan" diff --git a/coin/instructions/qmake_module_build.yaml b/coin/instructions/qmake_module_build.yaml new file mode 100644 index 000000000..120a7745f --- /dev/null +++ b/coin/instructions/qmake_module_build.yaml @@ -0,0 +1,31 @@ +type: Group +instructions: + - type: MakeDirectory + directory: ".git" + + - type: SetBuildDirectory + directory: "{{.SourceDir}}" + disable_if: + condition: property + property: features + contains_value: OutOfSourceBuild + - type: Group + instructions: + - type: SetBuildDirectory + directory: "{{.AgentWorkingDir}}/build" + - type: MakeDirectory + directory: "{{.BuildDir}}" + enable_if: + condition: property + property: features + contains_value: OutOfSourceBuild + - type: ChangeDirectory + directory: "{{.BuildDir}}" + + - type: ExecuteCommand + command: ["{{.InstallDir}}/bin/qmake", "INSTALL_PREFIX={{.InstallDir}}", "{{.SourceDir}}"] + maxTimeInSeconds: 1800 + maxTimeBetweenOutput: 600 + userMessageOnFailure: "Failed to run qmake, check logs." + - !include "{{installer-framework/installer-framework}}/make_instructions.yaml" + - !include "{{installer-framework/installer-framework}}/make_documentation.yaml" diff --git a/coin/module_config.yaml b/coin/module_config.yaml new file mode 100644 index 000000000..d6f275b8a --- /dev/null +++ b/coin/module_config.yaml @@ -0,0 +1,86 @@ +version: 2 +accept_configuration: + condition: or + conditions: + - condition: property + property: features + contains_value: LicenseCheck + - condition: property + property: features + contains_value: Documentation + - condition: and + conditions: + - condition: property + property: features + contains_value: Packaging + - condition: property + property: features + contains_value: DisableTests + - condition: property + property: configureArgs + contains_value: -static + +common_environment: &common_environment + type: Group + instructions: + - !include "{{installer-framework/installer-framework}}/common_environment.yaml" + +make_instructions: &make_instructions + type: Group + instructions: + - !include "{{installer-framework/installer-framework}}/qmake_module_build.yaml" + +make_check_instructions: &make_check_instructions + type: Group + instructions: + - type: MakeDirectory + directory: .git + userMessageOnFailure: Failed to create .git dir, not related to patch + - !include "{{installer-framework/installer-framework}}/make_check_instructions.yaml" + +run_license_check: &run_license_check + type: Group + enable_if: + condition: property + property: features + contains_value: LicenseCheck + instructions: + - type: EnvironmentVariable + variableName: QT_MODULE_TO_TEST + variableValue: "installer-framework/installer-framework" + - type: InstallSourceArchive + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + project: qt/qtqa + ref: master + directory: qt/qtqa + userMessageOnFailure: "Could not install qt/qtqa source archive. Please investigate why." + - type: InstallSourceArchive + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + project: qt/qtbase + ref: 5.12 + directory: qt/qtbase + userMessageOnFailure: "Could not install qt/base source archive. Please investigate why." + - type: ChangeDirectory + directory: "{{.AgentWorkingDir}}" + - type: ExecuteCommand + command: ["perl", "{{.AgentWorkingDir}}/qt/qtqa/tests/prebuild/license/tst_licenses.pl"] + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + userMessageOnFailure: "Failed to execute license checker." + +instructions: + Build: + - *common_environment + - !include "{{installer-framework/installer-framework}}/find_msvc_compiler.yaml" + - *make_instructions + + Test: + - *common_environment + - *run_license_check + - *make_check_instructions + + LicenseCheck: + - *run_license_check + |