Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Java CI build for Windows, Linux, and Mac ARM #1782

Merged
merged 7 commits into from
Jul 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/linux-java-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Build-Linux-Java-Lib
on:
workflow_dispatch:

jobs:
build-linux-java:
runs-on: kuzu-self-hosted-linux-building
steps:
- uses: actions/checkout@v3

- name: Build Java lib for Linux
run: bash make java NUM_THREADS=$(nproc)

- uses: actions/upload-artifact@v3
with:
name: libkuzu-java-linux-x86_64
path: tools/java_api/build/libkuzu_java_native*

- uses: actions/upload-artifact@v3
with:
name: kuzu-linux-jar
path: tools/java_api/build/*.jar
32 changes: 18 additions & 14 deletions .github/workflows/mac-java-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,22 @@ on:
workflow_dispatch:

jobs:
# build-mac-java-arm:
# runs-on: self-hosted-mac-arm
# steps:
# - uses: actions/checkout@v3
build-mac-java-arm:
runs-on: self-hosted-mac-arm
steps:
- uses: actions/checkout@v3

# - name: Build Java lib for Apple Silicon
# run: make java NUM_THREADS=8

# - uses: actions/upload-artifact@v3
# with:
# name: mac-arm64-java-lib
# path: tools/java_api/libkuzu_java_native*
- name: Build Java lib for Apple Silicon
run: |
env JAVA_HOME=$(/usr/libexec/java_home) make java NUM_THREADS=8
env:
MACOSX_DEPLOYMENT_TARGET: 11.0
ARCHFLAGS: "-arch arm64"

- uses: actions/upload-artifact@v3
with:
name: libkuzu-java-osx-arm64
path: tools/java_api/build/libkuzu_java_native*

build-mac-java-x86:
runs-on: macos-latest
Expand All @@ -23,12 +27,12 @@ jobs:

- name: Build Java lib for Intel
run: |
echo "JAVA_HOME=$JAVA_HOME_11_X64" >> $GITHUB_ENV
make java NUM_THREADS=3
env JAVA_HOME=$JAVA_HOME_11_X64 make java NUM_THREADS=3
env:
MACOSX_DEPLOYMENT_TARGET: 10.15
ARCHFLAGS: "-arch x86_64"

- uses: actions/upload-artifact@v3
with:
name: mac-arm64-java-lib
name: libkuzu-java-osx-x86_64
path: tools/java_api/build/libkuzu_java_native*
21 changes: 21 additions & 0 deletions .github/workflows/windows-java-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Build-Windows-NodeJS-Module

on:
workflow_dispatch:

jobs:
build-windows-java:
runs-on: self-hosted-windows
steps:
- uses: actions/checkout@v3

- name: Build Java lib for Windows
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
make java NUM_THREADS=48

- uses: actions/upload-artifact@v3
with:
name: libkuzu-java-win-x86_64
path: tools/java_api/build/libkuzu_java_native*
3 changes: 2 additions & 1 deletion scripts/pip-package/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM quay.io/pypa/manylinux2014_x86_64
# Install dependencies
RUN yum --disablerepo=epel -y upgrade curl ca-certificates
RUN yum update -y
RUN yum install -y cmake nodejs npm jq git perl-Digest-SHA libicu libicu-devel libcurl-devel openssl-devel
RUN yum install -y cmake nodejs npm jq git perl-Digest-SHA libicu libicu-devel libcurl-devel openssl-devel java-11-openjdk-devel

RUN useradd --create-home runner
USER runner
Expand All @@ -23,4 +23,5 @@ RUN /opt/python/cp310-cp310/bin/python -m pip install --user pipx
RUN /opt/python/cp310-cp310/bin/python -m pipx ensurepath
RUN /opt/python/cp310-cp310/bin/python -m pipx install pydoc-markdown

ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk
ENTRYPOINT ["./listener.sh"]
Loading