ci: add Ubuntu 22 OpenVINO build job with bundled runtime libs#15
Merged
Conversation
Adds a new release job that builds llama.cpp with -DGGML_OPENVINO=ON,
bundles libopenvino*.so*, plugins.xml (with paths rewritten to basenames
for $ORIGIN portability), and TBB alongside llama-server, then publishes
llama-{tag}-bin-ubuntu-openvino-2026.0-x64.tar.gz so lemonade can
download it without requiring a system-wide OpenVINO install.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new GitHub Actions release build target for Ubuntu 24.04 that compiles llama.cpp with the OpenVINO backend enabled and packages the OpenVINO runtime (shared libs + plugins.xml) alongside the produced binaries, so consumers can run without a system-wide OpenVINO install.
Changes:
- Adds a new
ubuntu-22-openvinobuild job that downloads the OpenVINO 2026.0 toolkit, builds with-DGGML_OPENVINO=ON, and stages OpenVINO runtime libraries intobuild/bin/. - Rewrites
plugins.xmlentries to basename-only locations and sets ELF RPATH to$ORIGINto support a relocatable bundle. - Adds the new OpenVINO artifact to the release job dependencies and to the generated release notes link list.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Set OPENVINO_VERSION_FULL to the correct 2026.0.0.20965.c6d6a13a886 (sourced from ggml-org/llama.cpp build-openvino.yml) - Install libtbb12, OpenCL headers, and ninja-build to match ggml-org's build environment - Run install_openvino_dependencies.sh from the toolkit before building Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use the ubuntu22 toolkit variant (which exists for 2026.0) and run on ubuntu-22.04 consistent with all other jobs in this workflow. Add an optional ubuntu_version input to the linux-setup-openvino action so callers can select the toolkit variant (default: ubuntu22). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
OpenVINO 2026.0 no longer ships plugins.xml in runtime/lib/intel64/; plugin discovery is handled automatically by the runtime library. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
libtbbbind is TBB's optional CPU topology library; it depends on libhwloc which is not available on the CI runner or target systems. Only bundle libtbb and libtbbmalloc, which are sufficient for llama.cpp. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 tasks
superm1
approved these changes
Jun 4, 2026
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
ubuntu-22-openvinorelease job that builds llama.cpp with-DGGML_OPENVINO=ONagainst the OpenVINO 2026.0 toolkitlibopenvino*.so*,plugins.xml(paths rewritten to basenames for$ORIGINportability), and TBB alongsidellama-serverllama-{tag}-bin-ubuntu-openvino-2026.0-x64.tar.gzso lemonade can download a self-contained OpenVINO backend without requiring a system-wide installBefore merging
Update
OPENVINO_VERSION_FULLin the job env (line ~451) with the correct full build string from:https://storage.openvinotoolkit.org/repositories/openvino/packages/2026.0/linux/
Test plan
OPENVINO_VERSION_FULLis set to a valid toolkit build stringworkflow_dispatchand verify the artifact is producedlibopenvino.sois present in the tarballllamacpp.backend = "openvino"in config.json and load a model🤖 Generated with Claude Code