5488c380d1
The module yaml file provides the instruction for creating and upload the test artifacts, it might as well provide the instruction for downloading it. Coin sets the corresponding environment variable for the storage path now. Change-Id: I4aabe60e28c0c1a6d5934b3b7b797835a793a7fe Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
282 lines
9.8 KiB
YAML
282 lines
9.8 KiB
YAML
version: 1
|
|
accept_configuration:
|
|
condition: property
|
|
property: host.os
|
|
equals_property: target.os
|
|
|
|
windows_specific_instructions:
|
|
- &export_target_architecture_and_sdk
|
|
# Export TARGET_ARCHITECTURE and WINDOWS_SDK_VERSION for MSVC cross compilation
|
|
type: Group
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
instructions:
|
|
- type: EnvironmentVariable
|
|
variableName: TARGET_ARCHITECTURE
|
|
variableValue: amd64 # TODO add something like "{{toLower .Config host.arch}}"
|
|
disable_if:
|
|
condition: property
|
|
property: host.arch
|
|
not_equals_property: target.arch
|
|
- type: EnvironmentVariable
|
|
variableName: TARGET_ARCHITECTURE
|
|
variableValue: amd64_x86
|
|
enable_if:
|
|
condition: and
|
|
conditions:
|
|
- condition: property
|
|
property: target.arch
|
|
equals_property: X86
|
|
- condition: property
|
|
property: host.arch
|
|
equals_property: X86_64
|
|
- 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.
|
|
variableName: TARGET_ARCHITECTURE
|
|
variableValue: x86
|
|
enable_if:
|
|
condition: property
|
|
property: target.os
|
|
in_values: ["WINRT", "WINPHONE", "WINCE"]
|
|
- type: EnvironmentVariable
|
|
variableName: WINDOWS_SDK_VERSION
|
|
variableValue: "10.0.14393.0"
|
|
enable_if:
|
|
condition: property
|
|
property: target.os
|
|
equals_value: WINRT
|
|
- type: EnvironmentVariable
|
|
variableName: WINDOWS_SDK_VERSION
|
|
variableValue: ""
|
|
disable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: WINRT # TODO set windows sdk version for desktop windows as well
|
|
|
|
- &find_path_to_compiler
|
|
# MSVC is installed in somehow arbitrary places. To reduce amount of combinations we need to make a variable.
|
|
# This seems inverted, but on 64 bit hosts VS is installed into the x86 path, otherwise the regular one
|
|
# TODO cleanup, that step could be removed if we have same installation paths or we read the path from registry.
|
|
type: Group
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
instructions:
|
|
# Try to pick one of many coexistent MSVC installation to use
|
|
# TODO cleanup, that could be much simpler if all tools are installed to similar paths, so it would
|
|
# be enough to substitute compiler name.
|
|
- 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
|
|
|
|
icc_specific_instructions: &icc_export_variables
|
|
type: Group
|
|
instructions:
|
|
- type: EnvironmentVariable
|
|
variableName: LD_LIBRARY_PATH
|
|
variableValue: "{{.Env.ICC64_18_LDLP}}"
|
|
- type: PrependToEnvironmentVariable
|
|
variableName: PATH
|
|
variableValue: "{{.Env.ICC64_18_PATH}}"
|
|
- type: PrependToEnvironmentVariable
|
|
variableName: CONFIGURE_ARGS
|
|
variableValue: "-DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc "
|
|
enable_if:
|
|
condition: property
|
|
property: host.compiler
|
|
equals_value: ICC_18
|
|
|
|
call_cmake_instructions: &call_cmake
|
|
type: Group
|
|
instructions:
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} {{.InstallDir}}\\bin\\qt-cmake {{.SourceDir}}/tests"
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to call cmake. Contact Liang then.
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
- type: ExecuteCommand
|
|
command: "{{.InstallDir}}/bin/qt-cmake {{.SourceDir}}/tests"
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to call cmake. Contact Liang then.
|
|
disable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
|
|
build_instructions:
|
|
- type: MakeDirectory
|
|
directory: .git
|
|
- type: SetBuildDirectory
|
|
directory: "{{.SourceDir}}"
|
|
- type: ChangeDirectory
|
|
directory: "{{.BuildDir}}"
|
|
- type: EnvironmentVariable
|
|
variableName: CMAKE_GENERATOR
|
|
variableValue: Ninja
|
|
- *icc_export_variables
|
|
- *export_target_architecture_and_sdk
|
|
- *find_path_to_compiler
|
|
# With MSVC we need setup the environment before every subprocess call.
|
|
- type: WriteFile
|
|
fileContents: "call \"{{.Env.VC_SCRIPT}}\" {{.Env.TARGET_ARCHITECTURE}} {{.Env.WINDOWS_SDK_VERSION}}\r\ncmd /c %*"
|
|
filename: c:\\users\\qt\\prefix.bat
|
|
fileMode: 420
|
|
maxTimeInSeconds: 20
|
|
maxTimeBetweenOutput: 20
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
- type: EnvironmentVariable
|
|
variableName: ENV_PREFIX
|
|
variableValue: "c:\\users\\qt\\prefix.bat"
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
- type: EnvironmentVariable
|
|
variableName: ENV_PREFIX
|
|
variableValue: ""
|
|
disable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake {{.Env.CONFIGURE_ARGS}} -DCMAKE_INSTALL_PREFIX:PATH={{.InstallDir}} -DBUILD_TESTING=OFF {{.SourceDir}}"
|
|
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to call cmake. Contact Liang then.
|
|
- type: ExecuteCommand # TODO: remove me, just debuging
|
|
command: cmd.exe /c type {{.BuildDir}}\\CMakeCache.txt
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
maxTimeInSeconds: 60
|
|
userMessageOnFailure: Could not print the file cmake config file. This should not be possible.
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --build ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to build sources. In the current state bug can be everywhere. Contact Liang first.
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --install ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to install package.
|
|
- type: EnvironmentVariable
|
|
variableName: DESTDIR
|
|
variableValue: "{{.InstallRoot}}"
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --install ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to install package for archiving.
|
|
- type: SignPackage
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}"
|
|
maxTimeInSeconds: 1200
|
|
maxTimeBetweenOutput: 1200
|
|
- type: UploadArtifact
|
|
archiveDirectory: "{{.InstallRoot}}/{{.AgentWorkingDir}}"
|
|
transferType: UploadModuleBuildArtifact
|
|
maxTimeInSeconds: 1200
|
|
maxTimeBetweenOutput: 1200
|
|
- type: ChangeDirectory
|
|
directory: "{{.SourceDir}}/tests"
|
|
- *call_cmake
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --build ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to build sources. In the current state bug can be everywhere. Contact Liang first.
|
|
- type: UploadTestArtifact
|
|
transferType: UploadModuleTestsArtifact
|
|
archiveDirectory: "{{.SourceDir}}/tests"
|
|
maxTimeInSeconds: 1200
|
|
maxTimeBetweenOutput: 1200
|
|
|
|
test_instructions:
|
|
- type: InstallTestBinaryArchive
|
|
relativeStoragePath: "{{.Env.MODULE_ARTIFACTS_RELATIVE_STORAGE_PATH}}"
|
|
directory: "{{.SourceDir}}/tests"
|
|
maxTimeInSeconds: 1200
|
|
maxTimeBetweenOutput: 1200
|
|
userMessageOnFailure: >
|
|
Failed to install tests archive.
|
|
- type: ChangeDirectory
|
|
directory: "{{.SourceDir}}/tests"
|
|
- type: ExecuteCommand
|
|
command: "ctest -V --rerun-failed"
|
|
ignoreExitCode: true
|
|
maxTimeInSeconds: 7200
|
|
maxTimeBetweenOutput: 900
|
|
userMessageOnFailure: >
|
|
Failed to run tests.
|