feat(ci): build the linux-arm64 native for the .NET and JVM bindings - #19
Open
ayushthakur18 wants to merge 1 commit into
Open
feat(ci): build the linux-arm64 native for the .NET and JVM bindings#19ayushthakur18 wants to merge 1 commit into
ayushthakur18 wants to merge 1 commit into
Conversation
The chat_xdk_dotnet cdylib ships for osx-arm64, osx-x64, linux-x64 and win-x64, so the JVM and .NET bindings cannot run on 64-bit ARM Linux -- AWS Graviton, Ampere, and ARM CI runners. On Linux/aarch64 detectRid() returns null, no bundled native is extracted, and the load falls through to a system lookup that finds nothing. The Python job already builds aarch64-unknown-linux-gnu on ubuntu-24.04-arm, so the target and the runner are already proven here. Since dotnet-build also feeds the java job, one matrix entry covers both bindings. - add the linux-arm64 entry to the dotnet-build matrix - stage it alongside the other RIDs for both the nupkg and the jar - require it in the jar verification list - return linux-arm64 from detectRid() on Linux/ARM
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #18.
Problem
The
chat_xdk_dotnetcdylib ships forosx-arm64,osx-x64,linux-x64andwin-x64. There is nolinux-arm64, so the JVM and .NET bindings cannot run on 64-bit ARM Linux — AWS Graviton, Ampere, and ARM CI runners.On Linux/aarch64,
detectRid()returnsnull, soextractBundledLibrary()extracts nothing andload()falls through to a system lookup that finds nothing unless the operator supplies their own build.Because
dotnet-buildalso feeds thejavajob, this single missing matrix entry affects both bindings.Change
linux-arm64entry in thedotnet-buildmatrix, onubuntu-24.04-armtargetingaarch64-unknown-linux-gnulinux-arm64staged alongside the other RIDs for both the nupkg and the jarnative/linux-arm64/libchat_xdk_dotnet.soadded to the jar verification list, so a missing artifact fails the release rather than shipping silentlydetectRid()returnslinux-arm64on Linux/ARMThe
ubuntu-24.04-armrunner and theaarch64-unknown-linux-gnutarget are already used by the Python wheel job in this same workflow, so nothing new is introduced to CI.Verification
Built
chat-xdk-dotnetforaarch64-unknown-linux-gnufrom v0.5.0, withjuicebox-sdkas a sibling checkout and the pinned 1.91.1 toolchain:Loaded through JNA on an ARM64 JVM (Temurin 25), with no
jna.library.pathset, to confirm the resource pathdetectRid()now returns is the one JNA resolves:I have not been able to run the full release workflow, so the matrix entry itself is unexercised — the build and load above were reproduced locally against the same source and toolchain.