Build Linux Precompiled Binaries #64
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |