Skip to content

Commit

Permalink
Change Python kokoro configs to test only their specified version. (#…
Browse files Browse the repository at this point in the history
…7927)

Using non-versioned scripts for `build_file` means every Python version is
tested (under Tox), and this is multiplied by each Python version running Tox.

For example, when the `python38` config is used to run Tox, the
Tox layer runs on Python 3.8. This then tests all of the Python versions
individually, including, for example, python27 tests.

This change fixes the `build_file` paths to point to the same-pathed build
script. For example, `kokoro/linux/python27/presubmit.cfg` now uses
`kokoro/linux/python27/build.sh`.

Some additional fixes:

*  Use `python -m tox` in tests.sh instead of just `tox`. This helps non-site
   installations of tox, where the `tox` script may not be on `$PATH`.
*  Ensure tox (and other Python build-related packages) are available in
   Python testing images. (New images have been pushed.)
*  Disable `--warnings_as_errors` due to deprecated function.
*  Remove apt lists per [Docker best practices][1].

[1]: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
  • Loading branch information
dlj-NaN authored Sep 30, 2020
1 parent d16bf91 commit b774da0
Show file tree
Hide file tree
Showing 27 changed files with 71 additions and 28 deletions.
10 changes: 9 additions & 1 deletion kokoro/linux/dockerfile/test/python27/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,12 @@ RUN apt-get update && apt-get install -y \
parallel \
time \
wget \
&& apt-get clean
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install Python libraries.
RUN python -m pip install --no-cache-dir --upgrade \
pip \
setuptools \
tox \
wheel
10 changes: 9 additions & 1 deletion kokoro/linux/dockerfile/test/python35/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,12 @@ RUN apt-get update && apt-get install -y \
parallel \
time \
wget \
&& apt-get clean
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install Python libraries.
RUN python -m pip install --no-cache-dir --upgrade \
pip \
setuptools \
tox \
wheel
10 changes: 9 additions & 1 deletion kokoro/linux/dockerfile/test/python36/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,12 @@ RUN apt-get update && apt-get install -y \
parallel \
time \
wget \
&& apt-get clean
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install Python libraries.
RUN python -m pip install --no-cache-dir --upgrade \
pip \
setuptools \
tox \
wheel
10 changes: 9 additions & 1 deletion kokoro/linux/dockerfile/test/python37/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,12 @@ RUN apt-get update && apt-get install -y \
parallel \
time \
wget \
&& apt-get clean
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install Python libraries.
RUN python -m pip install --no-cache-dir --upgrade \
pip \
setuptools \
tox \
wheel
10 changes: 9 additions & 1 deletion kokoro/linux/dockerfile/test/python38/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,12 @@ RUN apt-get update && apt-get install -y \
parallel \
time \
wget \
&& apt-get clean
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install Python libraries.
RUN python -m pip install --no-cache-dir --upgrade \
pip \
setuptools \
tox \
wheel
2 changes: 1 addition & 1 deletion kokoro/linux/python27/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python27/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python27/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python27/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python27_cpp/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python27_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python27_cpp/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python27_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python35/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python35/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python35/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python35/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python35_cpp/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python35_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python35_cpp/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python35_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python36/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python36/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python36/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python36/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python36_cpp/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python36_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python36_cpp/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python36_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python37/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python37/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python37/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python37/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python37_cpp/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python37_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python37_cpp/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python37_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python38/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python38/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python38/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python/build.sh"
build_file: "protobuf/kokoro/linux/python38/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python38_cpp/continuous.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python38_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
2 changes: 1 addition & 1 deletion kokoro/linux/python38_cpp/presubmit.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Config file for running tests in Kokoro

# Location of the build script in repository
build_file: "protobuf/kokoro/linux/python_cpp/build.sh"
build_file: "protobuf/kokoro/linux/python38_cpp/build.sh"
timeout_mins: 120

action {
Expand Down
5 changes: 4 additions & 1 deletion python/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ setenv =
commands =
python setup.py -q build_py
python: python setup.py -q build
cpp: python setup.py -q build --cpp_implementation --warnings_as_errors --compile_static_extension
# --warnings_as_errors disabled until we update the Python C extension. See:
# https://github.com/protocolbuffers/protobuf/issues/7930
# cpp: python setup.py -q build --cpp_implementation --warnings_as_errors --compile_static_extension
cpp: python setup.py -q build --cpp_implementation --compile_static_extension
python: python setup.py -q test -q
cpp: python setup.py -q test -q --cpp_implementation
python: python setup.py -q test_conformance
Expand Down
4 changes: 2 additions & 2 deletions tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -316,15 +316,15 @@ build_python() {
else
envlist=py\{27,36\}-python
fi
tox -e $envlist
python -m tox -e $envlist
cd ..
}

build_python_version() {
internal_build_cpp
cd python
envlist=$1
tox -e $envlist
python -m tox -e $envlist
cd ..
}

Expand Down

0 comments on commit b774da0

Please sign in to comment.