fix(ci): install libclang + Vulkan SDK on all platforms

Both whisper-rs-sys and llama-cpp-sys-2 run bindgen at build time,
which requires libclang.so/dylib/dll resolvable from the loader.
None of the three GitHub runners ship this out of the box today:
  - ubuntu-22.04: bindgen-0.72.1 panics with 'couldn't find any
    valid shared libraries matching libclang.so*'
  - macos-latest: same panic against libclang.dylib
  - windows-latest: choco already installed llvm here, but libclang
    was on an unset LIBCLANG_PATH, so bindgen still couldn't find it

And llama-cpp-sys-2's vulkan feature (wired on by whisper-rs' vulkan
feature → whisper-rs-sys + its own shared ggml build) hard-panics on
Windows when VULKAN_SDK is unset, and needs libvulkan.so linkable on
Linux.

Changes, applied symmetrically to check.yml and build.yml:
  - Linux: add libclang-dev, clang, libvulkan-dev to apt-get install.
  - macOS: brew install llvm, set LIBCLANG_PATH to brew --prefix
    llvm /lib so bindgen can load libclang.dylib.
  - Windows: choco install vulkan-sdk, set VULKAN_SDK to the
    newest-version directory under C:\VulkanSDK (resolved
    dynamically so a minor-version bump doesn't hardcode-break
    anything), set LIBCLANG_PATH to the llvm bin dir.

Unblocks the per-push cargo check job on main, phase4-systems-f7d0,
and phase4-ux-f7d0; also unblocks the release build. The Windows
Vulkan SDK install is the new long pole (~2 min on a cold runner)
but is needed unconditionally while the vulkan feature is on in
crates/transcription/Cargo.toml.

Co-authored-by: jars <jakejars@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-04-21 13:08:55 +00:00
committed by Jake
parent c163a9a07b
commit db8f1bf19d
2 changed files with 50 additions and 10 deletions

View File

@@ -64,6 +64,8 @@ jobs:
- uses: actions/checkout@v4
# System packages — same as check.yml but locked to release-build needs.
# See check.yml for the per-package rationale (bindgen → libclang,
# llama-cpp-sys-2 vulkan feature → libvulkan / VULKAN_SDK).
- name: Install Linux deps
if: matrix.os == 'ubuntu-22.04'
run: |
@@ -76,12 +78,17 @@ jobs:
libudev-dev \
patchelf \
cmake \
build-essential
build-essential \
libclang-dev \
clang \
libvulkan-dev
- name: Install macOS deps
if: matrix.os == 'macos-latest'
run: |
brew list cmake >/dev/null 2>&1 || brew install cmake
brew list llvm >/dev/null 2>&1 || brew install llvm
echo "LIBCLANG_PATH=$(brew --prefix llvm)/lib" >> "$GITHUB_ENV"
- name: Install Windows deps
if: matrix.os == 'windows-latest'
@@ -89,6 +96,14 @@ jobs:
run: |
cmake --version
choco install -y llvm --no-progress
choco install -y vulkan-sdk --no-progress
$sdkRoot = Get-ChildItem -Directory "C:\VulkanSDK" | Sort-Object Name -Descending | Select-Object -First 1
if (-not $sdkRoot) {
Write-Error "VulkanSDK directory not found under C:\VulkanSDK after choco install"
exit 1
}
echo "VULKAN_SDK=$($sdkRoot.FullName)" >> $env:GITHUB_ENV
echo "LIBCLANG_PATH=C:\Program Files\LLVM\bin" >> $env:GITHUB_ENV
- name: Install Node
uses: actions/setup-node@v4