From 7cad0bee80a536c7e47f54cf43174175834f30a0 Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Fri, 30 Jul 2021 15:21:09 +0100 Subject: [PATCH] Fail the CI if an optional module fails to compile (GH-27466) --- .github/workflows/build.yml | 4 ++++ .travis.yml | 1 + setup.py | 3 +++ 3 files changed, 8 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3d79999b229..4081b36f926 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -119,6 +119,8 @@ jobs: runs-on: macos-latest needs: check_source if: needs.check_source.outputs.run_tests == 'true' + env: + PYTHONSTRICTEXTENSIONBUILD: 1 steps: - uses: actions/checkout@v2 - name: Configure CPython @@ -137,6 +139,7 @@ jobs: if: needs.check_source.outputs.run_tests == 'true' env: OPENSSL_VER: 1.1.1k + PYTHONSTRICTEXTENSIONBUILD: 1 steps: - uses: actions/checkout@v2 - name: Register gcc problem matcher @@ -227,6 +230,7 @@ jobs: if: needs.check_source.outputs.run_tests == 'true' env: OPENSSL_VER: 1.1.1k + PYTHONSTRICTEXTENSIONBUILD: 1 ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0 steps: - uses: actions/checkout@v2 diff --git a/.travis.yml b/.travis.yml index 4b85da1a44c..b2f7e274587 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,7 @@ env: # Set rpath with env var instead of -Wl,-rpath linker flag # OpenSSL ignores LDFLAGS when linking bin/openssl - LD_RUN_PATH="${OPENSSL_DIR}/lib" + - PYTHONSTRICTEXTENSIONBUILD=1 branches: only: diff --git a/setup.py b/setup.py index 78eb68b8492..59b2548810c 100644 --- a/setup.py +++ b/setup.py @@ -571,6 +571,9 @@ class PyBuildExt(build_ext): print("Custom linker flags may require --with-openssl-rpath=auto") print() + if os.environ.get("PYTHONSTRICTEXTENSIONBUILD") and (self.failed or self.failed_on_import): + raise RuntimeError("Failed to build some stdlib modules") + def build_extension(self, ext): if ext.name == '_ctypes':