Skip to content

Build Linux Precompiled Binaries #64

Build Linux Precompiled Binaries

Build Linux Precompiled Binaries #64

name: Build Linux Precompiled Binaries
on:
workflow_dispatch:
workflow_call:
inputs:
isNightly:
type: boolean
required: true
default: false
env:
PIP_BREAK_SYSTEM_PACKAGES: 1
jobs:
build-precompiled-bin-x86_64:
runs-on: kuzu-self-hosted-linux-building-x86_64
steps:
- uses: actions/checkout@v4
- name: Update nightly version
if: ${{ inputs.isNightly == true }}
run: |
/opt/python/cp310-cp310/bin/python -m pip install packaging
/opt/python/cp310-cp310/bin/python update-nightly-build-version.py
working-directory: scripts
- name: Build precompiled binaries
run: |
make NUM_THREADS=$(nproc)
make install
- name: Collect artifacts
run: |
mv install/include/kuzu.h .
mv install/include/kuzu.hpp .
mv install/lib64/libkuzu.so .
mv install/bin/kuzu .
- name: Create tarball
run: |
tar -czvf libkuzu-linux-x86_64.tar.gz kuzu.h kuzu.hpp libkuzu.so
tar -czvf kuzu_cli-linux-x86_64.tar.gz kuzu
- uses: actions/upload-artifact@v4
with:
name: libkuzu-linux-x86_64
path: libkuzu-linux-x86_64.tar.gz
- uses: actions/upload-artifact@v4
with:
name: kuzu_cli-linux-x86_64
path: kuzu_cli-linux-x86_64.tar.gz
build-precompiled-bin-aarch64:
runs-on: kuzu-self-hosted-linux-building-aarch64
steps:
- uses: actions/checkout@v4
- name: Update nightly version
if: ${{ inputs.isNightly == true }}
run: |
/opt/python/cp310-cp310/bin/python -m pip install packaging
/opt/python/cp310-cp310/bin/python update-nightly-build-version.py
working-directory: scripts
- name: Build precompiled binaries
run: |
make NUM_THREADS=$(nproc)
make install
- name: Collect artifacts
run: |
mv install/include/kuzu.h .
mv install/include/kuzu.hpp .
mv install/lib64/libkuzu.so .
mv install/bin/kuzu .
- name: Create tarball
run: |
tar -czvf libkuzu-linux-aarch64.tar.gz kuzu.h kuzu.hpp libkuzu.so
tar -czvf kuzu_cli-linux-aarch64.tar.gz kuzu
- uses: actions/upload-artifact@v4
with:
name: libkuzu-linux-aarch64
path: libkuzu-linux-aarch64.tar.gz
- uses: actions/upload-artifact@v4
with:
name: kuzu_cli-linux-aarch64
path: kuzu_cli-linux-aarch64.tar.gz
build-precompiled-bin-android-armv8a:
runs-on: kuzu-self-hosted-testing
steps:
- uses: actions/checkout@v4
- name: Update nightly version
if: ${{ inputs.isNightly == true }}
run: |
python3 -m pip install packaging
python3 update-nightly-build-version.py
working-directory: scripts
- name: Build precompiled binaries
run: |
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a ..
make -j$(nproc)
cd ..
cmake --install build --prefix install
- name: Collect artifacts
run: |
mv install/include/kuzu.h .
mv install/include/kuzu.hpp .
mv install/lib/libkuzu.so .
mv install/bin/kuzu .
- name: Create tarball
run: |
tar -czvf libkuzu-android-armv8a.tar.gz kuzu.h kuzu.hpp libkuzu.so
tar -czvf kuzu_cli-android-armv8a.tar.gz kuzu
- uses: actions/upload-artifact@v4
with:
name: libkuzu-android-armv8a
path: libkuzu-android-armv8a.tar.gz
- uses: actions/upload-artifact@v4
with:
name: kuzu_cli-android-armv8a
path: kuzu_cli-android-armv8a.tar.gz