Skip to content

Commit bc7ff5e

Browse files
committed
feat: build Linux aarch64 in CI
1 parent 872e29b commit bc7ff5e

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

.github/workflows/build.yml

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,57 @@ jobs:
8989
path: build/macos-aarch64/librlawt.dylib
9090
retention-days: 1
9191
if-no-files-found: error
92+
linux-aarch64:
93+
runs-on: ubuntu-24.04
94+
env:
95+
DEBIAN_FRONTEND: "noninteractive"
96+
steps:
97+
- uses: actions/checkout@v4
98+
- uses: uraimo/run-on-arch-action@v3
99+
name: run on arch
100+
id: runcmd
101+
with:
102+
arch: aarch64
103+
distro: ubuntu20.04
104+
105+
# Uncomment this to have the action create a package in GHCR to speed up
106+
# subsequent builds
107+
# githubToken: ${{ github.token }}
108+
109+
env: |
110+
DEBIAN_FRONTEND: "noninteractive"
111+
# CMake 3.16.3 does not support arm64 as a platform in FindJNI.
112+
# We could alternatively update the Ubuntu version as a fix
113+
JAVA_HOME: "/usr/lib/jvm/java-1.11.0-openjdk-arm64"
114+
115+
setup: |
116+
mkdir -p "${PWD}/artifacts"
117+
118+
# Mount the host artifacts directory as /artifacts in the container
119+
dockerRunArgs: |
120+
--volume "${PWD}/artifacts:/artifacts"
121+
122+
install: |
123+
set -e -x
124+
apt-get update
125+
apt-get install -y cmake openjdk-11-jdk libgl-dev
126+
127+
run: |
128+
set -e -x
129+
uname -a
130+
131+
cmake -B build/linux-aarch64 .
132+
cmake --build build/linux-aarch64 --config Release
133+
134+
cp -r build/linux-aarch64/librlawt.so /artifacts/
135+
- uses: actions/upload-artifact@v4
136+
with:
137+
name: linux-aarch64
138+
path: artifacts/librlawt.so
139+
retention-days: 1
140+
if-no-files-found: error
92141
linux-amd64:
93-
needs: [windows, macos]
142+
needs: [windows, macos, linux-aarch64]
94143
runs-on: ubuntu-24.04
95144
container:
96145
image: amd64/ubuntu:20.04

0 commit comments

Comments
 (0)