From 60e5f91a39525cd10ae8fc033cb6a1aefa566984 Mon Sep 17 00:00:00 2001 From: Masood Malekghassemi Date: Mon, 5 Oct 2015 15:26:26 -0700 Subject: [PATCH] Enable pip caching on Jenkins slaves --- tools/jenkins/build_docker_and_run_tests.sh | 7 +++++++ tools/jenkins/docker_run_tests.sh | 4 ++++ tools/jenkins/grpc_jenkins_slave/Dockerfile | 5 +++-- tools/run_tests/build_python.sh | 13 ------------- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/jenkins/build_docker_and_run_tests.sh index 2c562e992aa..8b7809f2e23 100755 --- a/tools/jenkins/build_docker_and_run_tests.sh +++ b/tools/jenkins/build_docker_and_run_tests.sh @@ -37,8 +37,13 @@ cd `dirname $0`/../.. git_root=`pwd` cd - +# Ensure existence of ccache directory mkdir -p /tmp/ccache +# Ensure existence of the home directory for XDG caches (e.g. what pip uses for +# its cache location now that --download-cache is deprecated). +mkdir -p /tmp/xdg-cache-home + # Create a local branch so the child Docker script won't complain git branch -f jenkins-docker @@ -57,9 +62,11 @@ docker run \ -e "config=$config" \ -e "arch=$arch" \ -e CCACHE_DIR=/tmp/ccache \ + -e XDG_CACHE_HOME=/tmp/xdg-cache-home \ -i $TTY_FLAG \ -v "$git_root:/var/local/jenkins/grpc" \ -v /tmp/ccache:/tmp/ccache \ + -v /tmp/xdg-cache-home:/tmp/xdg-cache-home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker \ -w /var/local/git/grpc \ diff --git a/tools/jenkins/docker_run_tests.sh b/tools/jenkins/docker_run_tests.sh index 2e39bc6f51e..8bafeea6200 100755 --- a/tools/jenkins/docker_run_tests.sh +++ b/tools/jenkins/docker_run_tests.sh @@ -36,6 +36,10 @@ set -e export CONFIG=$config export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.5 +# Ensure that programs depending on current-user-ownership of cache directories +# are satisfied (it's being mounted from outside the image). +chown `whoami` $XDG_CACHE_HOME + mkdir -p /var/local/git git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc diff --git a/tools/jenkins/grpc_jenkins_slave/Dockerfile b/tools/jenkins/grpc_jenkins_slave/Dockerfile index 4f5387eeb55..5f2b425c8c2 100644 --- a/tools/jenkins/grpc_jenkins_slave/Dockerfile +++ b/tools/jenkins/grpc_jenkins_slave/Dockerfile @@ -126,10 +126,11 @@ RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" RUN apt-get update && apt-get install -y \ python-all-dev \ python3-all-dev \ - python-pip \ - python-virtualenv + python-pip # Install Python packages from PyPI +RUN pip install pip --upgrade +RUN pip install virtualenv RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2 # For sanity test diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index eb386146754..24cf6ba7c88 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -39,9 +39,6 @@ GRPCIO=$ROOT/src/python/grpcio GRPCIO_TEST=$ROOT/src/python/grpcio_test GRPCIO_HEALTH_CHECKING=$ROOT/src/python/grpcio_health_checking -# -# Dependency steps. -# install_grpcio_deps() { cd $GRPCIO pip install -r requirements.txt @@ -50,14 +47,7 @@ install_grpcio_test_deps() { cd $GRPCIO_TEST pip install -r requirements.txt } -# -# End dependency steps. -# -# -# Install steps. Requires that the `pip` command is appropriate (i.e. that the -# virtual environment has been activated). -# install_grpcio() { CFLAGS="-I$ROOT/include -std=c89" LDFLAGS=-L$ROOT/libs/$CONFIG GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install $GRPCIO } @@ -67,9 +57,6 @@ install_grpcio_test() { install_grpcio_health_checking() { pip install $GRPCIO_HEALTH_CHECKING } -# -# End install steps. -# # Cleans the environment of previous installations clean_grpcio_all() {