Skip to content

Commit

Permalink
Fix python tests on kokoro macos monterey (#31126) (#31315)
Browse files Browse the repository at this point in the history
* fix python build on kokoro macos monterey

* avoid using realpath

* fix grpc_distribtests_python on macos monterey

* try upgrade setuptools

Co-authored-by: Jan Tattermusch <jtattermusch@google.com>
  • Loading branch information
veblush and jtattermusch committed Oct 11, 2022
1 parent a3dc0fc commit 91091e3
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 26 deletions.
11 changes: 5 additions & 6 deletions tools/internal_ci/macos/grpc_distribtests_python.sh
Expand Up @@ -26,12 +26,11 @@ source tools/internal_ci/helper_scripts/prepare_build_macos_rc

# TODO(jtattermusch): cleanup this prepare build step (needed for python artifact build)
# install cython for all python versions
python2.7 -m pip install -U cython setuptools==44.1.1 wheel --user
python3.5 -m pip install -U cython setuptools==44.1.1 wheel --user
python3.6 -m pip install -U cython setuptools==44.1.1 wheel --user
python3.7 -m pip install -U cython setuptools==44.1.1 wheel --user
python3.8 -m pip install -U cython setuptools==44.1.1 wheel --user
python3.9 -m pip install -U cython setuptools==44.1.1 wheel --user
python3.7 -m pip install -U cython setuptools==65.4.1 wheel --user
python3.8 -m pip install -U cython setuptools==65.4.1 wheel --user
python3.9 -m pip install -U cython setuptools==65.4.1 wheel --user
python3.10 -m pip install -U cython setuptools==65.4.1 wheel --user
python3.11 -m pip install -U cython setuptools==65.4.1 wheel --user

# Build all python macos artifacts (this step actually builds all the binary wheels and source archives)
tools/run_tests/task_runner.py -f artifact macos python ${TASK_RUNNER_EXTRA_FILTERS} -j 4 -x build_artifacts/sponge_log.xml || FAILED="true"
Expand Down
7 changes: 4 additions & 3 deletions tools/run_tests/artifacts/build_artifact_python.sh
Expand Up @@ -135,10 +135,11 @@ ${SETARCH_CMD} "${PYTHON}" tools/distrib/python/grpcio_tools/setup.py bdist_whee
# the artifacts output dir.
if [ "$GRPC_SKIP_TWINE_CHECK" == "" ]
then
# Ensure the generated artifacts are valid.
# TODO(jtattermusch): avoid the need for always re-installing virtualenv and twine
# Install virtualenv if it isn't already available.
# TODO(jtattermusch): cleanup the virtualenv version fallback logic.
"${PYTHON}" -m pip install virtualenv
"${PYTHON}" -m virtualenv venv || { "${PYTHON}" -m pip install virtualenv==16.7.9 && "${PYTHON}" -m virtualenv venv; }
"${PYTHON}" -m virtualenv venv || { "${PYTHON}" -m pip install virtualenv==20.0.23 && "${PYTHON}" -m virtualenv venv; }
# Ensure the generated artifacts are valid using "twine check"
venv/bin/python -m pip install "twine<=2.0"
venv/bin/python -m twine check dist/* tools/distrib/python/grpcio_tools/dist/*
rm -rf venv/
Expand Down
18 changes: 2 additions & 16 deletions tools/run_tests/helper_scripts/build_python.sh
Expand Up @@ -86,20 +86,6 @@ function toolchain() {
fi
}

# TODO(jtattermusch): this adds dependency on grealpath on mac
# (brew install coreutils) for little reason.
# Command to invoke the linux command `realpath` or equivalent.
function script_realpath() {
# Find `realpath`
if [ -x "$(command -v realpath)" ]; then
realpath "$@"
elif [ -x "$(command -v grealpath)" ]; then
grealpath "$@"
else
exit 1
fi
}

####################
# Script Arguments #
####################
Expand Down Expand Up @@ -137,9 +123,9 @@ if [[ "$(inside_venv)" ]]; then
VENV_PYTHON="$PYTHON"
else
# Instantiate the virtualenv from the Python version passed in.
$PYTHON -m pip install --user virtualenv==16.7.9
$PYTHON -m pip install --user virtualenv==20.0.23
$PYTHON -m virtualenv "$VENV"
VENV_PYTHON=$(script_realpath "$VENV/$VENV_RELATIVE_PYTHON")
VENV_PYTHON="$(pwd)/$VENV/$VENV_RELATIVE_PYTHON"
fi


Expand Down
3 changes: 2 additions & 1 deletion tools/run_tests/helper_scripts/run_python.sh
Expand Up @@ -18,7 +18,8 @@ set -ex
# change to grpc repo root
cd "$(dirname "$0")/../../.."

PYTHON=$(realpath "${1:-py37/bin/python}")
# TODO(jtattermusch): is the $(pwd) prefix actually useful?
PYTHON="$(pwd)/${1:-py37/bin/python}"

ROOT=$(pwd)

Expand Down

0 comments on commit 91091e3

Please sign in to comment.