minor fixes including python3 fix

+ In linux environment, if there was no matching python configurations for a
  particular architecture (i.e. if that architecture was skipped) the docker
  build script would just crash. The offending line:

    for whl in /tmp/linux_wheels/*.whl; do

  would result in whl being equal to the unexpanded glob expression. Rather
  than checking this in the bash script, python checks whether there are any
  actual wheels to build and skips the script if there are none.

+ added universal_newlines=True when making the call to grab the package name -
  this fix is required for python3 since other a bytes prefix (b'') will be
  added to the package name

+ In the linux/docker environment, added a try/catch statement around the
  docker script for KeyboardInterrupt that will kill the docker subprocess in
  cases where cibuildwheel is being run interactively.
This commit is contained in:
tdos.apone
2017-07-02 17:11:15 -05:00
parent c28e85df9e
commit b5006fc4bc
2 changed files with 9 additions and 2 deletions
+7 -1
View File
@@ -46,6 +46,8 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
for platform_tag, docker_image in platforms:
platform_configs = [c for c in python_configurations if c.identifier.endswith(platform_tag)]
if not platform_configs:
continue
bash_script = '''
set -o errexit
@@ -113,7 +115,11 @@ def build(project_dir, package_name, output_dir, test_command, test_requires, be
'/bin/bash'],
stdin=subprocess.PIPE, universal_newlines=True)
docker_process.communicate(bash_script)
try:
docker_process.communicate(bash_script)
except KeyboardInterrupt:
docker_process.kill()
docker_process.wait()
if docker_process.returncode != 0:
exit(1)