Skip to content

Commit

Permalink
build(python): remove python 3.7 from kokoro Dockerfile (#1155)
Browse files Browse the repository at this point in the history
A lot of python repositories have a failing `Kokoro docs-presubmit` check with error `gpg: keyserver receive failed: No name`. For example, googleapis/python-asset#227

The issue is that the `fetch_gpg_keys.sh` script is failing in the Docker file [here](https://github.com/googleapis/synthtool/blob/master/synthtool/gcp/templates/python_library/.kokoro/docker/docs/Dockerfile#L68) because the key [here](https://github.com/googleapis/synthtool/blob/master/synthtool/gcp/templates/python_library/.kokoro/docker/docs/fetch_gpg_keys.sh#L39) is no longer available on the keyserver.

This PR removes `fetch_gpg_keys.sh` as, in most repositories, we don't need to install additional python versions. We can use the default python version in the ubuntu 20.04 base image which is python 3.8.10.
  • Loading branch information
parthea authored Jul 14, 2021
1 parent 53ea389 commit e44dc0c
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 79 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ RUN apt-get update \
libssl-dev \
libsqlite3-dev \
portaudio19-dev \
python3-distutils \
redis-server \
software-properties-common \
ssh \
Expand All @@ -59,40 +60,8 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/* \
&& rm -f /var/cache/apt/archives/*.deb


COPY fetch_gpg_keys.sh /tmp
# Install the desired versions of Python.
RUN set -ex \
&& export GNUPGHOME="$(mktemp -d)" \
&& echo "disable-ipv6" >> "${GNUPGHOME}/dirmngr.conf" \
&& /tmp/fetch_gpg_keys.sh \
&& for PYTHON_VERSION in 3.7.8 3.8.5; do \
wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
&& wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
&& gpg --batch --verify python-${PYTHON_VERSION}.tar.xz.asc python-${PYTHON_VERSION}.tar.xz \
&& rm -r python-${PYTHON_VERSION}.tar.xz.asc \
&& mkdir -p /usr/src/python-${PYTHON_VERSION} \
&& tar -xJC /usr/src/python-${PYTHON_VERSION} --strip-components=1 -f python-${PYTHON_VERSION}.tar.xz \
&& rm python-${PYTHON_VERSION}.tar.xz \
&& cd /usr/src/python-${PYTHON_VERSION} \
&& ./configure \
--enable-shared \
# This works only on Python 2.7 and throws a warning on every other
# version, but seems otherwise harmless.
--enable-unicode=ucs4 \
--with-system-ffi \
--without-ensurepip \
&& make -j$(nproc) \
&& make install \
&& ldconfig \
; done \
&& rm -rf "${GNUPGHOME}" \
&& rm -rf /usr/src/python* \
&& rm -rf ~/.cache/

RUN wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \
&& python3.7 /tmp/get-pip.py \
&& python3.8 /tmp/get-pip.py \
&& rm /tmp/get-pip.py

CMD ["python3.7"]
CMD ["python3.8"]

This file was deleted.

2 changes: 1 addition & 1 deletion tests/test_python_library.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def test_python_library():
templated_files = common.py_library()

assert os.path.exists(templated_files / ".kokoro/docs/docs-presubmit.cfg")
assert os.path.exists(templated_files / ".kokoro/docker/docs/fetch_gpg_keys.sh")
assert os.path.exists(templated_files / ".kokoro/docker/docs/Dockerfile")


def test_split_system_tests():
Expand Down

0 comments on commit e44dc0c

Please sign in to comment.