Add a workflow to regenerate the native libclang and libClangSharp packages#779
Merged
tannergooding merged 1 commit intoJul 15, 2026
Merged
Conversation
…ckages Adds .github/workflows/regenerate-native.yml which lifts libclang from the matching LLVM release and compiles libClangSharp against it, then packs and signs the runtime nupkgs on push to main. libclang regenerates when the tracked major.minor changes; libClangSharp also regenerates when sources/libClangSharp changes. A detect step fails fast if the nuspec/runtime.json versions drift from the CMakeLists.txt LLVM version. The download-and-stage logic lives in scripts/build.ps1/build.sh behind -regeneratenative so it can run locally, and Windows bsdtar handles the .tar.xz extraction for every runtime on one host. Bumps the tracked LLVM version to 22.1.8, the newest release carrying all five runtime assets, to exercise the workflow. The managed bindings and consuming package references are intentionally left until the packages are regenerated and published. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.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.
Adds a CI workflow that regenerates the native runtime packages and bumps the tracked LLVM version to exercise it.
.github/workflows/regenerate-native.yml— on push tomain(and viaworkflow_dispatch):libclang.runtime.*is lifted from the matchingllvmorg-<version>LLVM release.libClangSharp.runtime.*is compiled against that same release.scripts/SignClientFileListNative.txt), mirroring the managedsign-nugetjob. Signing runs only forpush(never PRs) and only when the legs that actually ran succeeded. Publishing to NuGet stays manual.libclangregenerates when the tracked LLVM major.minor changes;libClangSharpregenerates for that same reason or whensources/libClangSharp/changes. Adetectstep fails fast if the nuspec/runtime.jsonversions drift from theCMakeLists.txtLLVM version.scripts/build.ps1/scripts/build.sh— the download-and-stage logic lives behind-regeneratenative(with-target/-rid/-llvm) so it can be run locally, rather than being inlined in YAML. Windowsbsdtarhandles.tar.xzextraction, so thelibclanglift runs for all five runtimes on a single host.LLVM 21.1.8 → 22.1.8 — the newest release carrying all five runtime assets we map (
win-x64,win-arm64,linux-x64,linux-arm64,osx-arm64). This is the first real exercise of the workflow. The managed bindings (// Ported from llvmorg-…headers,VersionPrefix, docs) and the consumingDirectory.Packages.propsreferences are intentionally left until the packages are regenerated and published.The
regenerate-nativeworkflow has not run on Actions before; this is its first trip. README documents the flow under "Regenerating native binaries".