Skip to content

Commit 6b77779

Browse files
Add support for linux/arm64 wheels.
Update pyproject.toml to build for aarch64 on Linux, and update release_linux.sh to download the corresponding bazelisk binary. Also download setuptools and wheel on host, and virtualenv resolved for Python 3.9, and install them with --no-build-isolation to avoid PyPI timeout issues in container. Increase pip default timeout to 120s to handle slow network/proxy in Kokoro. PiperOrigin-RevId: 933297845
1 parent adc0bfd commit 6b77779

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

release/kokoro/release_linux.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export VIRTUALENV_NO_DOWNLOAD=1
2020
export PIP_DISABLE_PIP_VERSION_CHECK=1
2121

2222
# Pass these environment variables to the cibuildwheel Docker container
23-
export CIBW_ENVIRONMENT="VIRTUALENV_NO_DOWNLOAD=1 PIP_DISABLE_PIP_VERSION_CHECK=1"
23+
export CIBW_ENVIRONMENT="VIRTUALENV_NO_DOWNLOAD=1 PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_DEFAULT_TIMEOUT=120"
2424
export CIBW_DEPENDENCY_VERSIONS="latest"
2525
export CIBW_CONTAINER_ENGINE_EXTRA_ARGS="--network=host"
2626

@@ -203,7 +203,13 @@ rm -rf cel_expr_python/*_test.py
203203

204204
echo "Downloading bazelisk on host..."
205205
curl -LO https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-amd64
206-
chmod +x bazelisk-linux-amd64
206+
curl -LO https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-arm64
207+
chmod +x bazelisk-linux-amd64 bazelisk-linux-arm64
208+
209+
echo "Downloading build dependencies on host..."
210+
mkdir -p build_deps
211+
pip download --only-binary=:all: --dest build_deps "setuptools>=40.8.0" "wheel"
212+
pip download --only-binary=:all: --dest build_deps --python-version 3.9 --platform manylinux2014_x86_64 "virtualenv"
207213

208214
# Check if pyproject.toml exists before running sed
209215
if [ -f pyproject.toml ]; then

release/pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,18 @@ test-command = "python {project}/cel_basic_test.py"
4444
build-verbosity = 1
4545

4646
[tool.cibuildwheel.linux]
47+
build-frontend = { name = "pip", args = ["--no-build-isolation"] }
48+
before-build = "pip install --no-index --find-links={project}/build_deps setuptools wheel"
49+
archs = ["x86_64", "aarch64"]
4750
manylinux-x86_64-image = "manylinux_2_28"
51+
manylinux-aarch64-image = "manylinux_2_28"
4852
container-engine = "docker; disable_host_mount: True"
4953
# Google's internal Kokoro/RBE network uses a secure MITM proxy that resigns HTTPS
5054
# traffic with an internal Google CA. Since the public manylinux container does not
5155
# trust this CA, git fetches for external dependencies (like @cel-cpp) will fail
5256
# with SSL certificate errors. We disable http.sslVerify inside the container to
5357
# bypass this and allow Bazel to fetch SCM dependencies through the proxy.
54-
before-all = "git config --global http.sslVerify false && echo 'Installing bazelisk' && cp {project}/bazelisk-linux-amd64 /usr/local/bin/bazel"
58+
before-all = "git config --global http.sslVerify false && echo 'Installing bazelisk' && if [ $(uname -m) = 'aarch64' ]; then cp {project}/bazelisk-linux-arm64 /usr/local/bin/bazel; else cp {project}/bazelisk-linux-amd64 /usr/local/bin/bazel; fi && python3 -m pip install --no-index --find-links={project}/build_deps virtualenv"
5559

5660
[tool.cibuildwheel.macos]
5761
before-all = "echo 'Installing bazelisk'; brew install bazelisk"

0 commit comments

Comments
 (0)