You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sedona.apache.org by ja...@apache.org on 2026/08/19 17:11:47 UTC
(sedona-db) branch main updated: fix(ci): unbreak wheel tests and stop linux silently passing them (#1177)
This is an automated email from the ASF dual-hosted git repository.
james-willis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sedona-db.git
The following commit(s) were added to refs/heads/main by this push:
new d498441e8 fix(ci): unbreak wheel tests and stop linux silently passing them (#1177)
d498441e8 is described below
commit d498441e8360b79b29cc981f7640adbcbd6b01fd
Author: James Willis <ja...@users.noreply.github.com>
AuthorDate: Wed Aug 19 10:11:38 2026 -0700
fix(ci): unbreak wheel tests and stop linux silently passing them (#1177)
---
.github/workflows/python-wheels.yml | 8 ++++++--
ci/scripts/wheels-build-linux.sh | 19 ++++++++++++++++++-
python/sedonadb/tests/test_sjoin.py | 2 +-
3 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/python-wheels.yml b/.github/workflows/python-wheels.yml
index ce5124c44..8d568a70c 100644
--- a/.github/workflows/python-wheels.yml
+++ b/.github/workflows/python-wheels.yml
@@ -293,10 +293,14 @@ jobs:
env:
CIBW_SKIP: "*musllinux*"
VCPKG_BINARY_CACHE_HOST: ${{ github.workspace }}/vcpkg-bincache
+ HOST_WORKSPACE: ${{ github.workspace }}
CIBW_TEST_REQUIRES: pytest adbc_driver_manager geoarrow-pyarrow geopandas duckdb
# Test command exits 0 even on failure so CIBW continues building all wheels;
- # failures are recorded in .test_failed and checked after upload.
- CIBW_TEST_COMMAND: "pytest {package}/tests -vv -o faulthandler_timeout=600 || touch {project}/.test_failed"
+ # failures are recorded in .test_failed and checked after upload. The
+ # marker goes to the bind-mounted /host-workspace rather than {project}:
+ # cibuildwheel copies the project into the container, so a marker
+ # written there would be discarded and the gate would pass silently.
+ CIBW_TEST_COMMAND: "pytest {package}/tests -vv -o faulthandler_timeout=600 || touch /host-workspace/.test_failed"
- name: Save vcpkg binaries
if: always() && steps.vcpkg-cache.outputs.cache-hit != 'true'
diff --git a/ci/scripts/wheels-build-linux.sh b/ci/scripts/wheels-build-linux.sh
index 343bfb7d7..b1005ee02 100755
--- a/ci/scripts/wheels-build-linux.sh
+++ b/ci/scripts/wheels-build-linux.sh
@@ -50,16 +50,33 @@ BEFORE_ALL_MANYLINUX="yum install -y curl zip unzip tar clang perl"
# cached between Python versions (just not between invocations of this script).
export CIBW_ENVIRONMENT_LINUX="VCPKG_ROOT=/vcpkg VCPKG_REF=$VCPKG_REF VCPKG_DEFAULT_TRIPLET=$VCPKG_DEFAULT_TRIPLET CMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake PKG_CONFIG_PATH=/vcpkg/installed/$VCPKG_DEFAULT_TRIPLET/lib/pkgconfig LD_LIBRARY_PATH=/vcpkg/installed/$VCPKG_DEFAULT_TRIPLET/lib MATURIN_PEP517_ARGS='--features s2geography,pyo3/extension-module'"
+# Host directories to bind-mount into the build container. cibuildwheel copies
+# the project into the container rather than bind-mounting it, so anything the
+# build or test writes under {project} is discarded when the container exits;
+# only these mounts survive back to the host.
+CONTAINER_VOLUMES=""
+
# When a persistent vcpkg binary cache is provided (CI), bind-mount it into the
# build container and point vcpkg at it, so `vcpkg install` restores prebuilt
# binaries instead of rebuilding from source. Left unset for local builds, which
# fall back to vcpkg's in-container default cache and mount nothing.
if [ -n "${VCPKG_BINARY_CACHE_HOST}" ]; then
mkdir -p "${VCPKG_BINARY_CACHE_HOST}"
- export CIBW_CONTAINER_ENGINE="docker; create_args: --volume ${VCPKG_BINARY_CACHE_HOST}:/vcpkg-bincache"
+ CONTAINER_VOLUMES="${CONTAINER_VOLUMES} --volume ${VCPKG_BINARY_CACHE_HOST}:/vcpkg-bincache"
export CIBW_ENVIRONMENT_LINUX="$CIBW_ENVIRONMENT_LINUX VCPKG_DEFAULT_BINARY_CACHE=/vcpkg-bincache"
fi
+# The test-failure marker has to outlive the container for the job's final gate
+# to see it (see CIBW_TEST_COMMAND in python-wheels.yml). Mount the workspace so
+# the marker lands on the host, at the same path the macOS and Windows jobs use.
+if [ -n "${HOST_WORKSPACE}" ]; then
+ CONTAINER_VOLUMES="${CONTAINER_VOLUMES} --volume ${HOST_WORKSPACE}:/host-workspace"
+fi
+
+if [ -n "${CONTAINER_VOLUMES}" ]; then
+ export CIBW_CONTAINER_ENGINE="docker; create_args:${CONTAINER_VOLUMES}"
+fi
+
export CIBW_BEFORE_ALL="$BEFORE_ALL_MANYLINUX && git clone https://github.com/microsoft/vcpkg.git /vcpkg && bash {package}/../../ci/scripts/wheels-bootstrap-vcpkg.sh"
pushd "${SEDONADB_DIR}"
diff --git a/python/sedonadb/tests/test_sjoin.py b/python/sedonadb/tests/test_sjoin.py
index d7457759e..f9fe1db07 100644
--- a/python/sedonadb/tests/test_sjoin.py
+++ b/python/sedonadb/tests/test_sjoin.py
@@ -75,7 +75,7 @@ def test_spatial_left_join_with_empty_left_side(con):
result = left_empty.join(
right,
- on=left_empty["g"].geo.intersects(right["g2"]),
+ on=left_empty["g"].funcs.st_intersects(right["g2"]),
how="left",
).to_arrow_table()