aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/run_tests/build_artifact_python.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run_tests/build_artifact_python.sh')
-rwxr-xr-xtools/run_tests/build_artifact_python.sh48
1 files changed, 33 insertions, 15 deletions
diff --git a/tools/run_tests/build_artifact_python.sh b/tools/run_tests/build_artifact_python.sh
index 1f23f9fade..55f8eb634b 100755
--- a/tools/run_tests/build_artifact_python.sh
+++ b/tools/run_tests/build_artifact_python.sh
@@ -32,36 +32,54 @@ set -ex
cd $(dirname $0)/../..
+export GRPC_PYTHON_USE_CUSTOM_BDIST=0
+export GRPC_PYTHON_BUILD_WITH_CYTHON=1
+export PYTHON=${PYTHON:-python}
+export PIP=${PIP:-pip}
+export AUDITWHEEL=${AUDITWHEEL:-auditwheel}
+
+
if [ "$SKIP_PIP_INSTALL" == "" ]
then
- pip install --upgrade six
+ ${PIP} install --upgrade six
# There's a bug in newer versions of setuptools (see
# https://bitbucket.org/pypa/setuptools/issues/503/pkg_resources_vendorpackagingrequirementsi)
- pip install --upgrade 'setuptools==18'
- pip install -rrequirements.txt
+ ${PIP} pip install --upgrade 'setuptools==18'
+ ${PIP} install -rrequirements.txt
fi
-export GRPC_PYTHON_USE_CUSTOM_BDIST=0
-export GRPC_PYTHON_BUILD_WITH_CYTHON=1
-
# 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 \
+${SETARCH_CMD} ${PYTHON} setup.py \
sdist
-# The bdist_wheel_grpc_custom command is finicky about command output ordering
-# and thus ought to be run in a shell command separate of others. Further, it
-# trashes the actual bdist_wheel output, so it should be run first so that
-# bdist_wheel may be run unmolested.
-${SETARCH_CMD} python setup.py \
- build_tagged_ext
-
# 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 \
+${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
+
+# Build gRPC tools package binary distribution
+CFLAGS="$CFLAGS -fno-wrapv" ${SETARCH_CMD} \
+ ${PYTHON} tools/distrib/python/grpcio_tools/setup.py bdist_wheel
+
mkdir -p artifacts
+if command -v ${AUDITWHEEL}
+then
+ for wheel in dist/*.whl; do
+ ${AUDITWHEEL} repair $wheel -w artifacts/
+ done
+ for wheel in tools/distrib/python/grpcio_tools/dist/*.whl; do
+ ${AUDITWHEEL} repair $wheel -w artifacts/
+ done
+fi
cp -r dist/* artifacts
+cp -r tools/distrib/python/grpcio_tools/dist/* artifacts