diff options
author | Simo Fält <simo.falt@qt.io> | 2019-11-18 09:26:27 +0200 |
---|---|---|
committer | Simo Fält <simo.falt@qt.io> | 2019-11-20 12:19:47 +0200 |
commit | 2cfb016e28e0403f06b42f90c21dcfabe6b19db9 (patch) | |
tree | e97b2623472986769ebbc0563fcb517c6d45cc40 | |
parent | 6564925be8c6875f300d0013726a52337f23ca17 (diff) |
Brute solution for skipping missing ci template
There is a problem with Ubuntu 18.04 provisioning in
Qt5#5.12.6 branch, so we can't use that target. In
order to be able to skip that, we have to use CI's
custom module class instead of pyside class to get
pass the blocker. This commit is only to be used in
release branch, while it disables LicenceCheck target.
Change-Id: I5530d4ae19584685bbec034d0b8b977f25082ba2
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r-- | coin/module_config.yaml | 505 | ||||
-rw-r--r-- | coin_build_instructions.py | 8 | ||||
-rw-r--r-- | coin_test_instructions.py | 5 |
3 files changed, 510 insertions, 8 deletions
diff --git a/coin/module_config.yaml b/coin/module_config.yaml new file mode 100644 index 000000000..5a515213b --- /dev/null +++ b/coin/module_config.yaml @@ -0,0 +1,505 @@ +version: 1 +accept_configuration: + condition: and + conditions: + - condition: property # No cross compilation + property: host.os + equals_property: target.os + - condition: property # qtnamespace is not supported + property: configureArgs + not_contains_value: -qtnamespace + - condition: property # no-widgets is notsupported + property: configureArgs + not_contains_value: -no-widgets + - condition: property # no-gui is not supported + property: configureArgs + not_contains_value: -no-gui + - condition: property # Following configs are not supported + property: target.osVersion + not_in_values: [OPENSUSE_13_01, QEMU, WebAssembly, Ubuntu_18_04, SLES_12, SLES_15] + - condition: property # MibnGW and msvc2015 are not supported + property: target.compiler + not_in_values: [Mingw73, MSVC2015] + +set_environment: &set_environment + type: Group + instructions: + - type: EnvironmentVariable + variableName: TARGET_ARCHITECTURE + variableValue: amd64 + enable_if: + condition: and + conditions: + - condition: property + property: target.arch + equals_value: X86_64 + - condition: property + property: host.os + equals_value: Windows + - type: EnvironmentVariable + variableName: TARGET_ARCHITECTURE + variableValue: amd64_x86 + enable_if: + condition: and + conditions: + - condition: property + property: target.arch + equals_value: X86 + - condition: property + property: host.os + equals_value: Windows + - type: EnvironmentVariable + variableName: MAKEFLAGS + variableValue: "" + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: AppendToEnvironmentVariable + variableName: PATH + variableValue: ;%CI_JOM_PATH% + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: PrependToEnvironmentVariable + variableName: PATH + variableValue: "\\Users\\qt\\work\\install\\bin;" + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: EnvironmentVariable + variableName: ICC64_18_LDLP + variableValue: /opt/intel/lib/intel64 + enable_if: + condition: property + property: target.compiler + equals_value: ICC_18 + - type: EnvironmentVariable + variableName: ICC64_18_PATH # Seems a bit hard to maintain + variableValue: /opt/intel/compilers_and_libraries_2018.1.163/linux/bin/intel64:/opt/intel/bin + enable_if: + condition: property + property: target.compiler + equals_value: ICC_18 + - type: AppendToEnvironmentVariable + variableName: LD_LIBRARY_PATH + variableValue: :/opt/intel/lib/intel64 + enable_if: + condition: property + property: target.compiler + equals_value: ICC_18 + - type: AppendToEnvironmentVariable + variableName: PATH + variableValue: ":{{.Env.ICC64_18_PATH}}" + enable_if: + condition: property + property: target.compiler + equals_value: ICC_18 + - type: EnvironmentVariable + variableName: QT_MODULE_TO_TEST + variableValue: "pyside/pyside-setup" + enable_if: + condition: property + property: features + contains_value: LicenseCheck + +find_path_to_msvc_compiler: &find_path_to_msvc_compiler + type: Group + enable_if: + condition: property + property: host.os + equals_value: Windows + instructions: + - 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.os + equals_value: Windows + +run_instructions: &run_instructions + type: Group + instructions: + - type: ExecuteCommand + command: python -u coin_build_instructions.py --os=MacOS --packaging --instdir=/Users/qt/work/install --targetOs=MacOS --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: MacOS + - condition: property + property: features + contains_value: Packaging + userMessageOnFailure: > + Failed to execute build instructions on osx + - type: ExecuteCommand + command: python -u coin_build_instructions.py --os=MacOS --instdir=/Users/qt/work/install --targetOs=MacOS --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: MacOS + - condition: property + property: features + not_contains_value: Packaging + userMessageOnFailure: > + Failed to execute build instructions on osx + - type: ExecuteCommand + command: python -u coin_build_instructions.py --os=Linux --packaging --instdir=/home/qt/work/install --targetOs=Linux --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 14400 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Linux + - condition: property + property: features + contains_value: Packaging + userMessageOnFailure: > + Failed to execute build instructions on Linux + - type: ExecuteCommand + command: python -u coin_build_instructions.py --os=Linux --instdir=/home/qt/work/install --targetOs=Linux --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 14400 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Linux + - condition: property + property: features + not_contains_value: Packaging + userMessageOnFailure: > + Failed to execute build instructions on Linux + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_build_instructions.py --os=Windows --packaging --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: features + contains_value: Packaging + - condition: property + property: target.arch + equals_property: host.arch + userMessageOnFailure: > + Failed to execute build instructions on 64 bit Windows + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_build_instructions.py --os=Windows --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: features + not_contains_value: Packaging + - condition: property + property: target.arch + equals_property: host.arch + userMessageOnFailure: > + Failed to execute build instructions on 64 bit Windows + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_build_instructions.py --os=Windows --packaging --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: features + contains_value: Packaging + - condition: property + property: target.arch + equals_value: X86 + userMessageOnFailure: > + Failed to execute 32 bit build instructions on 64 bit Windows + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_build_instructions.py --os=Windows --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: features + not_contains_value: Packaging + - condition: property + property: target.arch + equals_value: X86 + userMessageOnFailure: > + Failed to execute 32 bit build instructions on 64 bit Windows +run_test_instructions: &run_test_instructions + type: Group + enable_if: + condition: property + property: features + not_contains_value: LicenseCheck + instructions: + - type: ExecuteCommand + command: python -u coin_test_instructions.py --os=MacOS --instdir=/Users/qt/work/install --targetOs=MacOS --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: MacOS + - condition: property + property: features + not_contains_value: Packaging + userMessageOnFailure: > + Failed to execute test instructions on osx + - type: ExecuteCommand + command: python -u coin_test_instructions.py --packaging --os=MacOS --instdir=/Users/qt/work/install --targetOs=MacOS --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: MacOS + - condition: property + property: features + contains_value: Packaging + userMessageOnFailure: > + Failed to execute test instructions on osx + - type: ExecuteCommand + command: python -u coin_test_instructions.py --os=Linux --instdir=/home/qt/work/install --targetOs=Linux --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 14400 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Linux + - condition: property + property: features + not_contains_value: Packaging + userMessageOnFailure: > + Failed to execute test instructions on Linux + - type: ExecuteCommand + command: python -u coin_test_instructions.py --packaging --os=Linux --instdir=/home/qt/work/install --targetOs=Linux --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 14400 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Linux + - condition: property + property: features + contains_value: Packaging + userMessageOnFailure: > + Failed to execute test instructions on Linux + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_test_instructions.py --os=Windows --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: target.arch + equals_property: host.arch + - condition: property + property: features + not_contains_value: Packaging + userMessageOnFailure: > + Failed to execute test instructions on 64 bit Windows + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_test_instructions.py --os=Windows --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: target.arch + equals_value: X86 + - condition: property + property: features + not_contains_value: Packaging + userMessageOnFailure: > + Failed to execute test instructions on 64 bit Windows + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_test_instructions.py --packaging --os=Windows --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86_64 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: target.arch + equals_property: host.arch + - condition: property + property: features + contains_value: Packaging + userMessageOnFailure: > + Failed to execute 32 bit test instructions on 64 bit Windows + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat python -u coin_test_instructions.py --packaging --os=Windows --instdir=\Users\qt\work\install --targetOs=Windows --hostArch=X86_64 --targetArch=X86 + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: target.arch + equals_value: X86 + - condition: property + property: features + contains_value: Packaging + userMessageOnFailure: > + Failed to execute 32 bit test instructions on 64 bit Windows + +relocate_pyside: &relocate_pyside + type: Group + enable_if: + condition: property + property: features + not_contains_value: LicenseCheck + instructions: + - type: ChangeDirectory + directory: "{{.AgentWorkingDir}}/pyside" + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + userMessageOnFailure: > + Failed to change to pyside dir + - type: ExecuteCommand + command: c:\\users\\qt\\MSVC.bat rd /s /q pyside-setup + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + enable_if: + condition: property + property: host.os + equals_value: Windows + userMessageOnFailure: > + Failed to remove pyside-setup dir + - type: ExecuteCommand + command: /bin/rm -rf pyside-setup + maxTimeInSeconds: 300 + maxTimeBetweenOutput: 120 + enable_if: + condition: property + property: host.os + not_equals_value: Windows + userMessageOnFailure: > + Failed to remove pyside-setup dir + - type: InstallBinaryArchive + relativeStoragePath: "{{.Env.MODULE_ARTIFACTS_RELATIVE_STORAGE_PATH}}/artifacts.tar.gz" + directory: "pyside" + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + - type: ChangeDirectory + directory: "{{.AgentWorkingDir}}\\pyside\\pyside-setup" + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: property + property: host.os + equals_value: Windows + userMessageOnFailure: > + Failed to install binary artifacts + - type: ChangeDirectory + directory: "{{.AgentWorkingDir}}/pyside/pyside-setup" + maxTimeInSeconds: 7200 + maxTimeBetweenOutput: 120 + enable_if: + condition: property + property: host.os + not_equals_value: Windows + userMessageOnFailure: > + Failed to change to pyside-setup dir + +upload_pyside: &upload_pyside + type: Group + instructions: + - type: UploadArtifact + archiveDirectory: "{{.AgentWorkingDir}}\\pyside" + transferType: UploadModuleBuildArtifact + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: UploadArtifact + archiveDirectory: "{{.AgentWorkingDir}}/pyside" + transferType: UploadModuleBuildArtifact + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + enable_if: + condition: property + property: host.os + not_equals_value: Windows + + +build_instructions: + - *set_environment + - *find_path_to_msvc_compiler + - *run_instructions + - *upload_pyside +test_instructions: + - *set_environment + - *find_path_to_msvc_compiler + - *relocate_pyside + - *run_test_instructions + diff --git a/coin_build_instructions.py b/coin_build_instructions.py index 9a7d6272c..1ffc97554 100644 --- a/coin_build_instructions.py +++ b/coin_build_instructions.py @@ -44,9 +44,10 @@ from build_scripts.utils import get_qtci_virtualEnv from build_scripts.utils import run_instruction from build_scripts.utils import rmtree from build_scripts.utils import get_python_dict -from build_scripts.utils import acceptCITestConfiguration from build_scripts.utils import get_ci_qmake_path import os +import datetime +import calendar # Values must match COIN thrift CI_HOST_OS = option_value("os") @@ -57,7 +58,8 @@ CI_HOST_OS_VER = option_value("osVer") CI_ENV_INSTALL_DIR = option_value("instdir") CI_ENV_AGENT_DIR = option_value("agentdir") CI_COMPILER = option_value("compiler") -CI_INTEGRATION_ID = option_value("coinIntegrationId") +CI_INTEGRATION_ID = option_value("coinIntegrationId") or \ + str(calendar.timegm(datetime.datetime.now().timetuple())) CI_FEATURES = [] _ci_features = option_value("features") if _ci_features is not None: @@ -132,8 +134,6 @@ def call_setup(python_ver): run_instruction(cmd, "Failed to run setup.py", initial_env=env) def run_build_instructions(): - if not acceptCITestConfiguration(CI_HOST_OS, CI_HOST_OS_VER, CI_TARGET_ARCH, CI_COMPILER): - exit() # Remove some environment variables that impact cmake for env_var in ['CC', 'CXX']: diff --git a/coin_test_instructions.py b/coin_test_instructions.py index aeedd03e7..92ecf2841 100644 --- a/coin_test_instructions.py +++ b/coin_test_instructions.py @@ -43,7 +43,6 @@ from build_scripts.utils import install_pip_wheel_package from build_scripts.utils import get_qtci_virtualEnv from build_scripts.utils import run_instruction from build_scripts.utils import rmtree -from build_scripts.utils import acceptCITestConfiguration from build_scripts.utils import get_ci_qmake_path import os @@ -84,8 +83,6 @@ def call_testrunner(python_ver, buildnro): run_instruction(cmd, "Error while running wheel_tester.py") def run_test_instructions(): - if not acceptCITestConfiguration(CI_HOST_OS, CI_HOST_OS_VER, CI_TARGET_ARCH, CI_COMPILER): - exit() # Remove some environment variables that impact cmake for env_var in ['CC', 'CXX']: @@ -99,7 +96,7 @@ def run_test_instructions(): call_testrunner("", str(testRun)) testRun =+ 1 # We know that second build was with python3 - if CI_RELEASE_CONF and CI_HOST_OS_VER not in ["RHEL_6_6"]: + if CI_RELEASE_CONF: call_testrunner("3", str(testRun)) if __name__ == "__main__": |