Add publish workflows for Swift (SPM) and Java (Maven Central)#13
Merged
Conversation
- Add build-xcframework job: cross-compiles oxbitnet-ffi for macOS universal + iOS, packages as XCFramework zip with sha256 checksum - Add create-release job: uploads XCFramework to GitHub Releases - Add build-java-natives job: matrix build across linux/macos/windows - Add publish-maven job: bundles native libs into JAR, publishes to Maven Central - Add root Package.swift for SPM git-tag-based resolution - Add NativeLoader.java for JAR-bundled native lib extraction at runtime - Add Gradle maven-publish + signing config with Sonatype + in-memory GPG - Add Gradle wrapper (8.12) for reproducible CI builds Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
build-xcframeworkcross-compilesoxbitnet-ffifor macOS universal + iOS, packages as XCFramework;create-releaseuploads it to GitHub Releases with sha256 checksumbuild-java-nativesmatrix-buildsoxbitnet-javafor 4 platforms (linux-x86_64, macos-aarch64, macos-x86_64, windows-x86_64);publish-mavenbundles native libs into JAR and publishes to Maven Central via GradlePackage.swiftadded for SPM git-tag-based resolutionNativeLoader.javaextracts bundled native libs from JAR classpath at runtime (OS/arch detection → temp dir →System.load())maven-publish+signingplugins configured with Sonatype repo + in-memory GPGRequired Secrets
MAVEN_CENTRAL_USERNAMEMAVEN_CENTRAL_PASSWORDGPG_PRIVATE_KEYGPG_PASSPHRASETest plan
./gradlew buildsucceeds locally inpackages/rust/crates/oxbitnet-java/java/🤖 Generated with Claude Code