summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Fält <simo.falt@qt.io>2018-06-11 12:13:51 +0300
committerAlexandru Croitor <alexandru.croitor@qt.io>2018-06-11 21:53:26 +0000
commit14a583c7cc2db606bc2301721cae63f07273e630 (patch)
tree3cf73cc7b0fc1ffcffce157475b0b77334c12680
parent1919b8d20cf8b6207a87fd5bf38f37d27d371bd8 (diff)
Fix Win CI node to allow 32 bit wheelsv5.11.05.11.0
We are missing the required provisioning script from Qt5 5.11.0 branch, so we are installing the 32 bit Python environments ourselves. Change-Id: Icd95a4708bc9e5693bb21b31c0e9d30d6fd632e6 Reviewed-by: Christian Tismer <tismer@stackless.com>
-rw-r--r--build_scripts/utils.py34
-rw-r--r--coin_build_instructions.py5
-rw-r--r--coin_test_instructions.py5
3 files changed, 44 insertions, 0 deletions
diff --git a/build_scripts/utils.py b/build_scripts/utils.py
index 6c3b5d0f..c0d189d2 100644
--- a/build_scripts/utils.py
+++ b/build_scripts/utils.py
@@ -1131,3 +1131,37 @@ def acceptCITestConfiguration(hostOS, hostOSVer, targetArch, compiler):
print("Disabled " + compiler + " to " + targetArch + " from Coin configuration")
return False
return True
+
+def runCIProvisioning():
+ # we need to make sure that we have 32 bit python
+ if os.environ.get('PYTHON3_32_PATH') is not None:
+ return
+ targetDir = os.path.join(os.environ.get('USERPROFILE'), "downloads")
+ python3_32Path = "C:\\Python36_32"
+ python2_32Path = "C:\\Python27_32"
+ provP3Script = ("http://code.qt.io/cgit/qt/qt5.git/plain/coin/provisioning/common/windows/"
+ "python3.ps1?id=6c295ac7f00f3352a3242b21c90bf3ad1a9fc86a")
+ provP2Script = ("http://code.qt.io/cgit/qt/qt5.git/plain/coin/provisioning/common/windows/"
+ "python.ps1?id=6c295ac7f00f3352a3242b21c90bf3ad1a9fc86a")
+ helperScript = ("http://code.qt.io/cgit/qt/qt5.git/plain/coin/provisioning/common/windows/"
+ "helpers.ps1?id=6c295ac7f00f3352a3242b21c90bf3ad1a9fc86a")
+ ps = ["powershell.exe", "Invoke-WebRequest", "-UseBasicParsing", provP3Script, "-OutFile",
+ os.path.join(targetDir, "python3.ps1")]
+ run_instruction(ps, "Unable to download python provisioning script")
+ ps = ["powershell.exe", "Invoke-WebRequest", "-UseBasicParsing", provP2Script, "-OutFile",
+ os.path.join(targetDir, "python2.ps1")]
+ run_instruction(ps, "Unable to download python provisioning script")
+ ps = ["powershell.exe", "Invoke-WebRequest", "-UseBasicParsing", helperScript, "-OutFile",
+ os.path.join(targetDir, "helpers.ps1")]
+ run_instruction(ps, "Unable to download helpers provisioning script")
+ ps = ["powershell.exe", "-ExecutionPolicy", "RemoteSigned", "-NonInteractive", "-File",
+ os.path.join(targetDir, "python3.ps1"), "32", python3_32Path]
+ run_instruction(ps, "Unable to install python3 32 bit")
+ ps = ["powershell.exe", "-ExecutionPolicy", "RemoteSigned", "-NonInteractive", "-File",
+ os.path.join(targetDir, "python2.ps1"), "32", python2_32Path]
+ run_instruction(ps, "Unable to install python2 32 bit")
+ # The env was set by powershell, so we are missing the env variables
+ os.environ["PYTHON3_32_PATH"] = python3_32Path
+ os.environ["PYTHON2_32_PATH"] = python2_32Path
+ os.environ["PIP3_32_PATH"] = python3_32Path + "\\Scripts"
+ os.environ["PIP2_32_PATH"] = python2_32Path + "\\Scripts"
diff --git a/coin_build_instructions.py b/coin_build_instructions.py
index 65e198be..df4bc9b6 100644
--- a/coin_build_instructions.py
+++ b/coin_build_instructions.py
@@ -44,6 +44,7 @@ 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 runCIProvisioning
import os
# Values must match COIN thrift
@@ -125,6 +126,10 @@ def run_build_instructions():
if not acceptCITestConfiguration(CI_HOST_OS, CI_HOST_OS_VER, CI_TARGET_ARCH, CI_COMPILER):
exit()
+ # Make sure we have 32 bit python on 64 bit host
+ # FIXME this is hack for 5.11.0
+ if CI_HOST_OS == "Windows" and CI_HOST_ARCH == "X86_64" and CI_TARGET_ARCH == "X86":
+ runCIProvisioning()
# Uses default python, hopefully we have python2 installed on all hosts
# Skip building using Python 2 on Windows, because of different MSVC C runtimes (VS2008 vs VS2015+)
if CI_HOST_OS != "Windows":
diff --git a/coin_test_instructions.py b/coin_test_instructions.py
index bd65b5b7..28b81262 100644
--- a/coin_test_instructions.py
+++ b/coin_test_instructions.py
@@ -43,6 +43,7 @@ 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 runCIProvisioning
import os
# Values must match COIN thrift
@@ -76,6 +77,10 @@ def run_test_instructions():
if not acceptCITestConfiguration(CI_HOST_OS, CI_HOST_OS_VER, CI_TARGET_ARCH, CI_COMPILER):
exit()
+ # Make sure we have 32 bit python on 64 bit host
+ # FIXME this is hack for 5.11.0
+ if CI_HOST_OS == "Windows" and CI_HOST_ARCH == "X86_64" and CI_TARGET_ARCH == "X86":
+ runCIProvisioning()
os.chdir(CI_ENV_AGENT_DIR)
testRun = 0
# We didn't build for Python 2 in win