Skip to content

Commit ba47bc7

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 install them in before-build with --no-build-isolation to avoid transient PyPI timeout issues in container. PiperOrigin-RevId: 933297845
1 parent adc0bfd commit ba47bc7

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

release/kokoro/release_linux.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,12 @@ 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"
207212

208213
# Check if pyproject.toml exists before running sed
209214
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"
5559

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

0 commit comments

Comments
 (0)