ci: add tag-driven prebuilt release pipeline - #286
Conversation
…Vulkan SDK fix, OpenMP-off CUDA build) [no release]
…PU/Vulkan preset bins) [no release]
… runtime DLLs in CUDA release
… as ggml-cuda.dll instead of 3 monoliths
…g-name, GGML_BACKEND_DL CUDA, robust cudart bundling)
…dle cufft64 runtime
…n input + publish gate
|
btw I dont know whether the other binaries work pls test them out on my fork before you merge this |
|
@drzsdrtfg Thank you for the PR! It may require some time to test...Stay tuned. |
|
Ok. Just let me know when issues appear. @0xShug0 |
|
@drzsdrtfg Tested the Metal and Linux releases so far, and they work correctly. One thing I noticed during testing: The current prebuilts don’t pass the flags to the server to enable the native model manager ( Could you update the release scripts so the prebuilts include the self-contained native UI? More about the new flags: |
|
Ok, I will. |
Add -DAUDIOCPP_BUILD_NATIVE_MODEL_MANAGER=ON to the CMAKE_ARGS so the prebuilt binaries ship with the self-contained native UI (model downloads, dynamic model management, etc.) instead of relying on external Python. Addresses: 0xShug0#286 (comment)
The env.CMAKE_ARGS is consumed only by the Linux and macOS jobs which call cmake directly. Windows CPU and Vulkan jobs use build_windows.ps1 which has its own CLI parameters (-DeploymentBuild, -NativeModelManager) and ignores CMAKE_ARGS. Windows CUDA jobs also hardcode cmake flags. This fix: - Adds -DeploymentBuild -NativeModelManager to all build_windows.ps1 calls - Adds -DAUDIOCPP_BUILD_NATIVE_MODEL_MANAGER=ON to the CUDA cmake command
Port the upstream fix (0xShug0/audio.cpp@e9e8f14) to the fork: - Add --native-model-manager, --system-openssl, --boringssl-archive CLI flags - Add -DAUDIOCPP_BUILD_NATIVE_MODEL_MANAGER to cmake invocations - Print native model manager status in build output This completes the owner's request: the release CI now builds the self-contained native UI on all platforms.
|
@0xShug0 Should be done by now. Can you take a look? |
|
Found some mistakes. Will fix them and come back. |
The server's model installer invokes tools/model_manager_v2.py for package downloads. Without it in the prebuilt zip, model download from the WebUI fails with 'model preparation helper was not found'. Include tools/ and model_specs/ at the archive root so the server can resolve its repository_root (traverses upward from the exe).
Thanks! AFK tonight. I will check tomorrow. |
…lease - Build jobs now upload the unpacked bundle (binaries + tools/ + model_specs/) instead of a zip-wrapped-in-an-artifact, so downloading an Actions artifact yields a ready-to-run folder. - CUDA jobs upload bin and cudart as two separate artifacts (the old wildcard path merged both into one ~1 GB blob). - The release job downloads per-artifact folders, creates the final zip/tar.gz archives there, and uploads those to the Release -- asset layout stays identical to v0.6.0.
|
You can test it now. |
|
@drzsdrtfg The prebuilts work correctly on Linux, Metal, and Windows based on my tests. My concern is that the Windows CPU/CUDA/Vulkan staged artifacts do not include MSVC/OpenMP runtime DLLs such as Should the Windows prebuilts include those DLLs as well? |
Summary
Adds the prebuilt release pipeline: every
v*release now ships ready-to-run binaries attached to the GitHub Release. This is the full set of changes this fork adds over upstream0xShug0/audio.cpp— 2 files.Changes
.github/workflows/release.ymldocs/RELEASING.md.github/workflows/release.ymlv*semver tag push, or manualworkflow_dispatchwith a publish checkbox (used for build-only dry runs). No release on everymainpush.audiocpp_cli,audiocpp_server,audiocpp_ggufwith-DAUDIOCPP_DEPLOYMENT_BUILD=ON -DENGINE_ENABLE_LLAMAFILE=ON -DENGINE_ENABLE_CUDA_GRAPHS=ON.linux-rocmis commented out (no AMD GPU runner).ggml-cuda.dll; the CUDA runtime ships once in a separate-cudart-...zip. CUDA archs are pinned all-real.audio-<tag>-bin-windows-x64-<backend>.zip(+-cudart-...zip); Linux/macOS as.tar.gz.gh release uploadto an existing release (--clobber) orgh release createon a new tag (--generate-notes).docs/RELEASING.mdUI-only steps to draft a release, tag, dry-run from the Actions tab, plus the artifact table and the GPU-runtime verification note.
Validation
The prebuilt binaries were downloaded and run to confirm they work out of the box.
Hardware:
Config:
audiocpp_cli --task tts --family supertonic --model supertonic-3-f16.gguf --voice-id M1 --num-inference-steps 8 --seed 1234Vulkan binary (Radeon RX Vega 56):
CPU binary (i5-10400):
These runs only confirm the shipped binaries enumerate the device and synthesize correctly; see the README for reference performance figures.
Notes
release.ymlreferencesmacos-26/macos-15-intelrunner labels; adjust to this repo's runner pool if different.