aboutsummaryrefslogtreecommitdiffstats
path: root/coin_build_instructions.py
diff options
context:
space:
mode:
Diffstat (limited to 'coin_build_instructions.py')
-rw-r--r--coin_build_instructions.py61
1 files changed, 35 insertions, 26 deletions
diff --git a/coin_build_instructions.py b/coin_build_instructions.py
index 9a7d6272c..e35bcda3b 100644
--- a/coin_build_instructions.py
+++ b/coin_build_instructions.py
@@ -39,14 +39,14 @@
from build_scripts.options import has_option
from build_scripts.options import option_value
from build_scripts.utils import install_pip_dependencies
-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 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,13 +57,18 @@ 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:
for f in _ci_features.split(', '):
CI_FEATURES.append(f)
CI_RELEASE_CONF = has_option("packaging")
+CI_TEST_PHASE = option_value("phase")
+if CI_TEST_PHASE not in ["ALL", "BUILD", "WHEEL"]:
+ CI_TEST_PHASE = "ALL"
+
+
def get_current_script_path():
""" Returns the absolute path containing this script. """
@@ -96,21 +101,20 @@ def is_snapshot_build():
return True
return False
-def call_setup(python_ver):
+def call_setup(python_ver, phase):
_pExe, _env, env_pip, env_python = get_qtci_virtualEnv(python_ver, CI_HOST_OS, CI_HOST_ARCH, CI_TARGET_ARCH)
- rmtree(_env, True)
- run_instruction(["virtualenv", "-p", _pExe, _env], "Failed to create virtualenv")
- install_pip_dependencies(env_pip, ["pip", "numpy", "setuptools", "sphinx", "six"])
- install_pip_wheel_package(env_pip)
+ if phase in ["BUILD"]:
+ rmtree(_env, True)
+ run_instruction(["virtualenv", "-p", _pExe, _env], "Failed to create virtualenv")
+ install_pip_dependencies(env_pip, ["pip", "numpy", "setuptools", "sphinx", "six", "wheel"])
cmd = [env_python, "-u", "setup.py"]
- if CI_RELEASE_CONF:
- cmd += ["bdist_wheel", "--standalone"]
- else:
- cmd += ["build"]
- qmake_path = get_ci_qmake_path(CI_ENV_INSTALL_DIR, CI_HOST_OS)
- cmd.append(qmake_path)
+ if phase in ["BUILD"]:
+ cmd += ["build", "--standalone", "--skip-packaging"]
+ elif phase in ["WHEEL"] or CI_RELEASE_CONF:
+ cmd += ["bdist_wheel", "--reuse-build", "--standalone", "--skip-cmake", "--skip-make-install", "--only-package"]
+
cmd += ["--build-tests",
"--parallel=4",
"--verbose-build"]
@@ -119,6 +123,9 @@ def call_setup(python_ver):
if is_snapshot_build():
cmd += ["--snapshot-build"]
+ qmake_path = get_ci_qmake_path(CI_ENV_INSTALL_DIR, CI_HOST_OS)
+ cmd.append(qmake_path)
+
# Due to certain older CMake versions generating very long paths
# (at least with CMake 3.6.2) when using the export() function,
# pass the shorter paths option on Windows so we don't hit
@@ -129,25 +136,27 @@ def call_setup(python_ver):
cmd += ["--package-timestamp=" + CI_INTEGRATION_ID]
env = os.environ
- run_instruction(cmd, "Failed to run setup.py", initial_env=env)
+ run_instruction(cmd, "Failed to run setup.py for build", 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']:
- if os.environ.get(env_var):
- del os.environ[env_var]
+def run_build_instructions(phase):
# 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":
- call_setup("")
-
+ call_setup("", phase)
# In case of packaging build, we have to build also python3 wheel
if CI_RELEASE_CONF and CI_HOST_OS_VER not in ["RHEL_6_6"]:
- call_setup("3")
+ call_setup("3", phase)
if __name__ == "__main__":
- run_build_instructions()
+ # Remove some environment variables that impact cmake
+ for env_var in ['CC', 'CXX']:
+ if os.environ.get(env_var):
+ del os.environ[env_var]
+
+ if CI_TEST_PHASE in ["ALL", "BUILD"]:
+ run_build_instructions("BUILD")
+
+ if CI_TEST_PHASE in ["ALL", "WHEEL"]:
+ run_build_instructions("WHEEL")