@@ -2,9 +2,9 @@ name: Native ARM Wheels Build (Portable + RocksDB Cached)
22
33on :
44 workflow_dispatch :
5- push :
6- branches :
7- - " arm-build"
5+ # push:
6+ # branches:
7+ # - "arm-build"
88
99env :
1010 PYREX_VERSION : " 0.1.4"
@@ -54,14 +54,12 @@ jobs:
5454 restore-keys : |
5555 rocksdb-${{ runner.os }}-linux-arch=${{ env.CIBW_ARCHS_LINUX }}-v=${{ env.ROCKSDB_VERSION }}-manylinux=${{ env.CIBW_MANYLINUX_AARCH64_IMAGE }}-musllinux=${{ env.CIBW_MUSLLINUX_AARCH64_IMAGE }}-
5656 rocksdb-${{ runner.os }}-linux-arch=${{ env.CIBW_ARCHS_LINUX }}-v=${{ env.ROCKSDB_VERSION }}-
57-
5857 - name : Build wheels
5958 env :
6059 CIBW_CONTAINER_ENGINE : >-
6160 docker;
6261 create-args: --network=host
6362 -v ${{ github.workspace }}/.cibw-rocksdb-cache:/cibw-cache
64-
6563 CIBW_ENVIRONMENT : >
6664 PYREX_VERSION='${{ env.PYREX_VERSION }}'
6765 ROCKSDB_VERSION='${{ env.ROCKSDB_VERSION }}'
@@ -80,14 +78,11 @@ jobs:
8078 LDFLAGS="-L/opt/rocksdb/lib $LDFLAGS"
8179 LD_LIBRARY_PATH="/opt/rocksdb/lib:$LD_LIBRARY_PATH"
8280 PKG_CONFIG_PATH="/opt/rocksdb/lib/pkgconfig:$PKG_CONFIG_PATH"
83-
8481 CIBW_BEFORE_ALL_LINUX : |
8582 set -euxo pipefail
86-
8783 ARCH="aarch64"
8884 PREFIX="/opt/rocksdb"
8985 FLAGS="${PORTABLE_FLAGS}"
90-
9186 # Separate caches for glibc (manylinux) vs musl (musllinux)
9287 if [ -f /etc/alpine-release ]; then
9388 LIBC="musl"
@@ -96,20 +91,16 @@ jobs:
9691 LIBC="glibc"
9792 IMAGE_TAG="${CIBW_MANYLINUX_AARCH64_IMAGE:-manylinux_unknown}"
9893 fi
99-
10094 SAFE_FLAGS="$(echo "${FLAGS}" | tr ' /' '__')"
10195 CACHE_TARBALL="/cibw-cache/rocksdb-v${ROCKSDB_VERSION}-${ARCH}-${LIBC}-${IMAGE_TAG}-flags-${SAFE_FLAGS}.tar.gz"
102-
10396 if [ -f "${CACHE_TARBALL}" ]; then
10497 echo "✅ Restoring cached RocksDB from ${CACHE_TARBALL}"
10598 mkdir -p "${PREFIX}"
10699 tar -xzf "${CACHE_TARBALL}" -C /
107100 ldconfig || true
108101 exit 0
109102 fi
110-
111103 echo "ℹ️ No cache found for (${ARCH}, ${LIBC}, ${IMAGE_TAG}). Building RocksDB and caching..."
112-
113104 # Install deps
114105 if [ "${LIBC}" = "musl" ]; then
115106 apk add --no-cache \
@@ -132,17 +123,13 @@ jobs:
132123 gflags-devel snappy-devel lz4-devel zlib-devel bzip2-devel \
133124 libzstd-devel liburing-devel)
134125 fi
135-
136126 WORKDIR="$(mktemp -d)"
137127 cd "${WORKDIR}"
138-
139128 wget -q "https://github.com/facebook/rocksdb/archive/refs/tags/v${ROCKSDB_VERSION}.tar.gz"
140129 tar -xzf "v${ROCKSDB_VERSION}.tar.gz"
141130 cd "rocksdb-${ROCKSDB_VERSION}"
142-
143131 export CC=clang
144132 export CXX=clang++
145-
146133 cmake . -G Ninja \
147134 -DCMAKE_C_COMPILER=clang \
148135 -DCMAKE_CXX_COMPILER=clang++ \
@@ -160,18 +147,15 @@ jobs:
160147 -DCMAKE_CXX_FLAGS="${FLAGS} -Wno-error=unused-command-line-argument -Wno-error=nontrivial-memcall" \
161148 -DCMAKE_EXE_LINKER_FLAGS="-flto" \
162149 -DCMAKE_SHARED_LINKER_FLAGS="-flto"
163-
164150 ninja -j"$(nproc)"
165151 ninja install
166152 ldconfig || true
167-
168153 echo "📦 Saving RocksDB cache to ${CACHE_TARBALL}"
169154 tar -czf "${CACHE_TARBALL}" -C / "opt/rocksdb"
170-
171155 run : cibuildwheel --output-dir wheelhouse
172156
173157 - name : Upload wheels
174158 uses : actions/upload-artifact@v4
175159 with :
176160 name : wheels-linux-aarch64
177- path : ./wheelhouse/*.whl
161+ path : ./wheelhouse/*.whl
0 commit comments