diff options
author | Yuchen Zeng <zyc@google.com> | 2016-08-24 18:22:24 -0700 |
---|---|---|
committer | Yuchen Zeng <zyc@google.com> | 2016-08-24 18:22:24 -0700 |
commit | 78cc066db2a2c8d65f63826f9f76f81c16d63b03 (patch) | |
tree | 12b5a169bd6b967ebcee2226d5b93f69bcb03609 /tools/run_tests/build_artifact_python.sh | |
parent | 4dd1891665024d98b6655326f0c6277793b9b055 (diff) | |
parent | 19ea0cffd7ba3df686ed05671f9ed35b8e9fa830 (diff) |
Merge remote-tracking branch 'upstream/master' into cares_buildin
Diffstat (limited to 'tools/run_tests/build_artifact_python.sh')
-rwxr-xr-x | tools/run_tests/build_artifact_python.sh | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/tools/run_tests/build_artifact_python.sh b/tools/run_tests/build_artifact_python.sh index 8f8330ef24..9fed7c5028 100755 --- a/tools/run_tests/build_artifact_python.sh +++ b/tools/run_tests/build_artifact_python.sh @@ -38,38 +38,42 @@ export PYTHON=${PYTHON:-python} export PIP=${PIP:-pip} export AUDITWHEEL=${AUDITWHEEL:-auditwheel} +# Because multiple builds run in parallel, some distutils file +# operations may collide. To avoid this, each build is run in +# a temp directory +mkdir -p artifacts +ARTIFACT_DIR="$PWD/artifacts" +BUILD_DIR=`mktemp -d "${TMPDIR:-/tmp}/pygrpc.XXXXXX"` +trap "rm -rf $BUILD_DIR" EXIT +cp -r * "$BUILD_DIR" +cd "$BUILD_DIR" # Build the source distribution first because MANIFEST.in cannot override # exclusion of built shared objects among package resources (for some # inexplicable reason). -${SETARCH_CMD} ${PYTHON} setup.py \ - sdist +${SETARCH_CMD} ${PYTHON} setup.py sdist # Wheel has a bug where directories don't get excluded. # https://bitbucket.org/pypa/wheel/issues/99/cannot-exclude-directory -${SETARCH_CMD} ${PYTHON} setup.py \ - bdist_wheel +${SETARCH_CMD} ${PYTHON} setup.py bdist_wheel # Build gRPC tools package distribution ${PYTHON} tools/distrib/python/make_grpcio_tools.py # Build gRPC tools package source distribution -${SETARCH_CMD} ${PYTHON} tools/distrib/python/grpcio_tools/setup.py \ - sdist +${SETARCH_CMD} ${PYTHON} tools/distrib/python/grpcio_tools/setup.py sdist # Build gRPC tools package binary distribution -CFLAGS="$CFLAGS -fno-wrapv" ${SETARCH_CMD} \ - ${PYTHON} tools/distrib/python/grpcio_tools/setup.py bdist_wheel +${SETARCH_CMD} ${PYTHON} tools/distrib/python/grpcio_tools/setup.py bdist_wheel -mkdir -p artifacts if [ "$BUILD_MANYLINUX_WHEEL" != "" ] then for wheel in dist/*.whl; do - ${AUDITWHEEL} repair $wheel -w artifacts/ + ${AUDITWHEEL} repair $wheel -w "$ARTIFACT_DIR" rm $wheel done for wheel in tools/distrib/python/grpcio_tools/dist/*.whl; do - ${AUDITWHEEL} repair $wheel -w artifacts/ + ${AUDITWHEEL} repair $wheel -w "$ARTIFACT_DIR" rm $wheel done fi @@ -81,14 +85,14 @@ fi if [ "$BUILD_HEALTH_CHECKING" != "" ] then ${PIP} install -rrequirements.txt - ${PIP} install grpcio --no-index --find-links "file://${PWD}/artifacts/" - ${PIP} install grpcio-tools --no-index --find-links "file://${PWD}/artifacts/" + ${PIP} install grpcio --no-index --find-links "file://$ARTIFACT_DIR/" + ${PIP} install grpcio-tools --no-index --find-links "file://$ARTIFACT_DIR/" # Build gRPC health check source distribution ${SETARCH_CMD} ${PYTHON} src/python/grpcio_health_checking/setup.py \ preprocess build_package_protos sdist - cp -r src/python/grpcio_health_checking/dist/* artifacts + cp -r src/python/grpcio_health_checking/dist/* "$ARTIFACT_DIR" fi -cp -r dist/* artifacts -cp -r tools/distrib/python/grpcio_tools/dist/* artifacts +cp -r dist/* "$ARTIFACT_DIR" +cp -r tools/distrib/python/grpcio_tools/dist/* "$ARTIFACT_DIR" |