diff --git a/build.sh b/build.sh index 6fefdeb4..c9a5e30c 100755 --- a/build.sh +++ b/build.sh @@ -76,6 +76,8 @@ docker buildx build \ --rm -t quay.io/pypa/${POLICY}_${PLATFORM}:${COMMIT_SHA} \ -f docker/Dockerfile docker/ +docker run --rm -v $(pwd)/tests:/tests:ro quay.io/pypa/${POLICY}_${PLATFORM}:${COMMIT_SHA} /tests/run_tests.sh + if [ -d $(pwd)/.buildx-cache-${POLICY}_${PLATFORM} ]; then rm -rf $(pwd)/.buildx-cache-${POLICY}_${PLATFORM} fi diff --git a/docker/Dockerfile b/docker/Dockerfile index fe112aa0..4949b154 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -160,12 +160,7 @@ COPY --from=build_cmake /manylinux-rootfs / COPY --from=build_swig /manylinux-rootfs / COPY --from=build_cpython /manylinux-rootfs / COPY --from=all_cpython /opt/_internal /opt/_internal/ -COPY build_scripts/finalize.sh /build_scripts/finalize.sh -COPY build_scripts/python-tag-abi-tag.py /build_scripts/python-tag-abi-tag.py -COPY build_scripts/ssl-check.py /build_scripts/ssl-check.py -COPY build_scripts/manylinux-check.py /build_scripts/manylinux-check.py -COPY build_scripts/requirements.txt /build_scripts/requirements.txt -COPY build_scripts/requirements-tools.txt /build_scripts/requirements-tools.txt +COPY build_scripts/finalize.sh build_scripts/python-tag-abi-tag.py build_scripts/requirements.txt build_scripts/requirements-tools.txt /build_scripts/ RUN manylinux-entrypoint /build_scripts/finalize.sh && rm -rf /build_scripts ENV SSL_CERT_FILE=/opt/_internal/certs.pem diff --git a/docker/build_scripts/finalize.sh b/docker/build_scripts/finalize.sh index a6556dd6..d436c2ec 100755 --- a/docker/build_scripts/finalize.sh +++ b/docker/build_scripts/finalize.sh @@ -52,15 +52,6 @@ export SSL_CERT_FILE=/opt/_internal/certs.pem # Deactivate the tools virtual environment deactivate - -for PYTHON in /opt/python/*/bin/python; do - # Smoke test to make sure that our Pythons work, and do indeed detect as - # being manylinux compatible: - $PYTHON $MY_DIR/manylinux-check.py ${AUDITWHEEL_POLICY} ${AUDITWHEEL_ARCH} - # Make sure that SSL cert checking works - $PYTHON $MY_DIR/ssl-check.py -done - # We do not need the precompiled .pyc and .pyo files. clean_pyc /opt/_internal @@ -68,4 +59,3 @@ clean_pyc /opt/_internal rm -rf /root/.cache hardlink -cv /opt/_internal - diff --git a/docker/build_scripts/manylinux-check.py b/tests/manylinux-check.py similarity index 100% rename from docker/build_scripts/manylinux-check.py rename to tests/manylinux-check.py diff --git a/tests/run_tests.sh b/tests/run_tests.sh new file mode 100755 index 00000000..cad79905 --- /dev/null +++ b/tests/run_tests.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Stop at any error, show all commands +set -exuo pipefail + +# Get script directory +MY_DIR=$(dirname "${BASH_SOURCE[0]}") + + +for PYTHON in /opt/python/*/bin/python; do + # Smoke test to make sure that our Pythons work, and do indeed detect as + # being manylinux compatible: + $PYTHON $MY_DIR/manylinux-check.py ${AUDITWHEEL_POLICY} ${AUDITWHEEL_ARCH} + # Make sure that SSL cert checking works + $PYTHON $MY_DIR/ssl-check.py +done + +# minimal tests for tools that should be present +autoconf --version +automake --version +libtoolize --version +patchelf --version +git --version +cmake --version +swig -version diff --git a/docker/build_scripts/ssl-check.py b/tests/ssl-check.py similarity index 100% rename from docker/build_scripts/ssl-check.py rename to tests/ssl-check.py