microsoft / onnxruntime

ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
https://onnxruntime.ai
MIT License
13.6k stars 2.77k forks source link

[Feature Request] Automate Java and Android package publishing #14950

Open edgchen1 opened 1 year ago

edgchen1 commented 1 year ago

Describe the feature request

A more automated process for publishing ONNX Runtime Java and Android packages. Currently it requires quite a few manual steps.

Ideally, we could also publish snapshot builds for testing between releases.

Describe scenario use case

The release manager can easily publish the Java and Android packages for both pre-release validation and the actual release with fewer manual steps.

edgchen1 commented 1 year ago

@Craigacp Would you be able to provide any guidance on how we can set this up? I think it should be doable somehow with Gradle.

Craigacp commented 1 year ago

The tricky part that is currently a little involved is the bit that aggregates all the native binaries into a single jar file. It has to run after Windows x86_64, Linux x86_64 & ARM64, macOS x86_64 & ARM64, unpacking each jar then extracting the native libraries and my understanding is that that is complicated to do in the CI environment.

Publishing snapshots to Maven Central is something that we do in TF-Java as part of the GitHub Actions pipeline so that can be automated, though it depends exactly what the jar signing pipeline looks like and where the keys live.

Someone on your end needs to talk to Sonatype to setup the snapshot repo on OSSRH following this guide - https://central.sonatype.org/publish/publish-guide/#introduction, and from that point it should all be stuff in build.gradle or the various CI pipelines.

Unfortunately I don't really know anything about Android packaging or how those repositories are configured, so I'm not much use there.

snnn commented 1 year ago
Publishing snapshots to Maven Central/Ois something that we do in TF-Java as part of the GitHub Actions pipeline so that can be automated, 

Thanks for the recommendation. We won't use Github Actions for building/publishing packages. We have an internal system for this purpose. I will talk to @edgchen1 offline.

Craigacp commented 1 year ago
Publishing snapshots to Maven Central/Ois something that we do in TF-Java as part of the GitHub Actions pipeline so that can be automated, 

Thanks for the recommendation. We won't use Github Actions for building/publishing packages. We have an internal system for this purpose. I will talk to @edgchen1 offline.

Sure, I wasn't suggesting GHA for this project, just that we have an existence proof of doing that kind of thing in TF-Java so presumably you'll be able to sort it out in Azure.