feat(vllm): parity with llama.cpp backend #17931
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
| --- | |
| name: 'Tests extras backends' | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - master | |
| tags: | |
| - '*' | |
| concurrency: | |
| group: ci-tests-extra-${{ github.head_ref || github.ref }}-${{ github.repository }} | |
| cancel-in-progress: true | |
| jobs: | |
| detect-changes: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| run-all: ${{ steps.detect.outputs.run-all }} | |
| transformers: ${{ steps.detect.outputs.transformers }} | |
| rerankers: ${{ steps.detect.outputs.rerankers }} | |
| diffusers: ${{ steps.detect.outputs.diffusers }} | |
| coqui: ${{ steps.detect.outputs.coqui }} | |
| moonshine: ${{ steps.detect.outputs.moonshine }} | |
| pocket-tts: ${{ steps.detect.outputs.pocket-tts }} | |
| qwen-tts: ${{ steps.detect.outputs.qwen-tts }} | |
| qwen-asr: ${{ steps.detect.outputs.qwen-asr }} | |
| nemo: ${{ steps.detect.outputs.nemo }} | |
| voxcpm: ${{ steps.detect.outputs.voxcpm }} | |
| llama-cpp-quantization: ${{ steps.detect.outputs.llama-cpp-quantization }} | |
| llama-cpp: ${{ steps.detect.outputs.llama-cpp }} | |
| ik-llama-cpp: ${{ steps.detect.outputs.ik-llama-cpp }} | |
| vllm: ${{ steps.detect.outputs.vllm }} | |
| acestep-cpp: ${{ steps.detect.outputs.acestep-cpp }} | |
| qwen3-tts-cpp: ${{ steps.detect.outputs.qwen3-tts-cpp }} | |
| voxtral: ${{ steps.detect.outputs.voxtral }} | |
| kokoros: ${{ steps.detect.outputs.kokoros }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Install dependencies | |
| run: bun add js-yaml @octokit/core | |
| - name: Detect changed backends | |
| id: detect | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GITHUB_EVENT_PATH: ${{ github.event_path }} | |
| run: bun run scripts/changed-backends.js | |
| # Requires CUDA | |
| # tests-chatterbox-tts: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Clone | |
| # uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: Dependencies | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install build-essential ffmpeg | |
| # # Install UV | |
| # curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # sudo apt-get install -y libopencv-dev | |
| # pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| # - name: Test chatterbox-tts | |
| # run: | | |
| # make --jobs=5 --output-sync=target -C backend/python/chatterbox | |
| # make --jobs=5 --output-sync=target -C backend/python/chatterbox test | |
| tests-transformers: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.transformers == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install build-essential ffmpeg | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| sudo apt-get install -y libopencv-dev | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test transformers | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/transformers | |
| make --jobs=5 --output-sync=target -C backend/python/transformers test | |
| tests-rerankers: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.rerankers == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install build-essential ffmpeg | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| sudo apt-get install -y libopencv-dev | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test rerankers | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/rerankers | |
| make --jobs=5 --output-sync=target -C backend/python/rerankers test | |
| tests-diffusers: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.diffusers == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential ffmpeg | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| sudo apt-get install -y libopencv-dev | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test diffusers | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/diffusers | |
| make --jobs=5 --output-sync=target -C backend/python/diffusers test | |
| #tests-vllm: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Clone | |
| # uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: Dependencies | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install -y build-essential ffmpeg | |
| # sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # sudo apt-get install -y libopencv-dev | |
| # # Install UV | |
| # curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| # - name: Test vllm backend | |
| # run: | | |
| # make --jobs=5 --output-sync=target -C backend/python/vllm | |
| # make --jobs=5 --output-sync=target -C backend/python/vllm test | |
| # tests-transformers-musicgen: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Clone | |
| # uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: Dependencies | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install build-essential ffmpeg | |
| # # Install UV | |
| # curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # sudo apt-get install -y libopencv-dev | |
| # pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| # - name: Test transformers-musicgen | |
| # run: | | |
| # make --jobs=5 --output-sync=target -C backend/python/transformers-musicgen | |
| # make --jobs=5 --output-sync=target -C backend/python/transformers-musicgen test | |
| # tests-bark: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Release space from worker | |
| # run: | | |
| # echo "Listing top largest packages" | |
| # pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr) | |
| # head -n 30 <<< "${pkgs}" | |
| # echo | |
| # df -h | |
| # echo | |
| # sudo apt-get remove -y '^llvm-.*|^libllvm.*' || true | |
| # sudo apt-get remove --auto-remove android-sdk-platform-tools || true | |
| # sudo apt-get purge --auto-remove android-sdk-platform-tools || true | |
| # sudo rm -rf /usr/local/lib/android | |
| # sudo apt-get remove -y '^dotnet-.*|^aspnetcore-.*' || true | |
| # sudo rm -rf /usr/share/dotnet | |
| # sudo apt-get remove -y '^mono-.*' || true | |
| # sudo apt-get remove -y '^ghc-.*' || true | |
| # sudo apt-get remove -y '.*jdk.*|.*jre.*' || true | |
| # sudo apt-get remove -y 'php.*' || true | |
| # sudo apt-get remove -y hhvm powershell firefox monodoc-manual msbuild || true | |
| # sudo apt-get remove -y '^google-.*' || true | |
| # sudo apt-get remove -y azure-cli || true | |
| # sudo apt-get remove -y '^mongo.*-.*|^postgresql-.*|^mysql-.*|^mssql-.*' || true | |
| # sudo apt-get remove -y '^gfortran-.*' || true | |
| # sudo apt-get remove -y microsoft-edge-stable || true | |
| # sudo apt-get remove -y firefox || true | |
| # sudo apt-get remove -y powershell || true | |
| # sudo apt-get remove -y r-base-core || true | |
| # sudo apt-get autoremove -y | |
| # sudo apt-get clean | |
| # echo | |
| # echo "Listing top largest packages" | |
| # pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr) | |
| # head -n 30 <<< "${pkgs}" | |
| # echo | |
| # sudo rm -rfv build || true | |
| # sudo rm -rf /usr/share/dotnet || true | |
| # sudo rm -rf /opt/ghc || true | |
| # sudo rm -rf "/usr/local/share/boost" || true | |
| # sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true | |
| # df -h | |
| # - name: Clone | |
| # uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: Dependencies | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install build-essential ffmpeg | |
| # # Install UV | |
| # curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # sudo apt-get install -y libopencv-dev | |
| # pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| # - name: Test bark | |
| # run: | | |
| # make --jobs=5 --output-sync=target -C backend/python/bark | |
| # make --jobs=5 --output-sync=target -C backend/python/bark test | |
| # Below tests needs GPU. Commented out for now | |
| # TODO: Re-enable as soon as we have GPU nodes | |
| # tests-vllm: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Clone | |
| # uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: Dependencies | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install build-essential ffmpeg | |
| # # Install UV | |
| # curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # sudo apt-get install -y libopencv-dev | |
| # pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| # - name: Test vllm | |
| # run: | | |
| # make --jobs=5 --output-sync=target -C backend/python/vllm | |
| # make --jobs=5 --output-sync=target -C backend/python/vllm test | |
| tests-coqui: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.coqui == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential ffmpeg | |
| sudo apt-get install -y ca-certificates cmake curl patch espeak espeak-ng python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test coqui | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/coqui | |
| make --jobs=5 --output-sync=target -C backend/python/coqui test | |
| tests-moonshine: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.moonshine == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential ffmpeg | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test moonshine | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/moonshine | |
| make --jobs=5 --output-sync=target -C backend/python/moonshine test | |
| tests-pocket-tts: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.pocket-tts == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential ffmpeg | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test pocket-tts | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/pocket-tts | |
| make --jobs=5 --output-sync=target -C backend/python/pocket-tts test | |
| tests-qwen-tts: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.qwen-tts == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential ffmpeg | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test qwen-tts | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/qwen-tts | |
| make --jobs=5 --output-sync=target -C backend/python/qwen-tts test | |
| # TODO: s2-pro model is too large to load on CPU-only CI runners — re-enable | |
| # when we have GPU runners or a smaller test model. | |
| # tests-fish-speech: | |
| # runs-on: ubuntu-latest | |
| # timeout-minutes: 45 | |
| # steps: | |
| # - name: Clone | |
| # uses: actions/checkout@v6 | |
| # with: | |
| # submodules: true | |
| # - name: Dependencies | |
| # run: | | |
| # sudo apt-get update | |
| # sudo apt-get install -y build-essential ffmpeg portaudio19-dev | |
| # sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # # Install UV | |
| # curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| # - name: Test fish-speech | |
| # run: | | |
| # make --jobs=5 --output-sync=target -C backend/python/fish-speech | |
| # make --jobs=5 --output-sync=target -C backend/python/fish-speech test | |
| tests-qwen-asr: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.qwen-asr == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential ffmpeg sox | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test qwen-asr | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/qwen-asr | |
| make --jobs=5 --output-sync=target -C backend/python/qwen-asr test | |
| tests-nemo: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.nemo == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential ffmpeg sox | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test nemo | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/nemo | |
| make --jobs=5 --output-sync=target -C backend/python/nemo test | |
| tests-voxcpm: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.voxcpm == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install build-essential ffmpeg | |
| sudo apt-get install -y ca-certificates cmake curl patch python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Test voxcpm | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/voxcpm | |
| make --jobs=5 --output-sync=target -C backend/python/voxcpm test | |
| tests-llama-cpp-quantization: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.llama-cpp-quantization == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake curl git python3-pip | |
| # Install UV | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| pip install --user --no-cache-dir grpcio-tools==1.64.1 | |
| - name: Build llama-quantize from llama.cpp | |
| run: | | |
| git clone --depth 1 https://github.com/ggml-org/llama.cpp.git /tmp/llama.cpp | |
| cmake -B /tmp/llama.cpp/build -S /tmp/llama.cpp -DGGML_NATIVE=OFF | |
| cmake --build /tmp/llama.cpp/build --target llama-quantize -j$(nproc) | |
| sudo cp /tmp/llama.cpp/build/bin/llama-quantize /usr/local/bin/ | |
| - name: Install backend | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/llama-cpp-quantization | |
| - name: Test llama-cpp-quantization | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/python/llama-cpp-quantization test | |
| tests-llama-cpp-grpc: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.llama-cpp == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 90 | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.4' | |
| - name: Build llama-cpp backend image and run gRPC e2e tests | |
| run: | | |
| make test-extra-backend-llama-cpp | |
| tests-ik-llama-cpp-grpc: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.ik-llama-cpp == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 90 | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.4' | |
| - name: Build ik-llama-cpp backend image and run gRPC e2e tests | |
| run: | | |
| make test-extra-backend-ik-llama-cpp | |
| tests-vllm-grpc: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.vllm == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| # The prebuilt vllm CPU wheel is compiled with AVX-512 VNNI/BF16 | |
| # instructions; stock ubuntu-latest runners SIGILL on import of | |
| # vllm.model_executor.models.registry. bigger-runner has newer | |
| # hardware that supports the required SIMD. | |
| runs-on: bigger-runner | |
| timeout-minutes: 90 | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| # bigger-runner is a bare self-hosted runner — install the tools | |
| # we need for docker-build + protogen-go + go test (make, curl, | |
| # unzip for the protoc download, build-essential for cgo). | |
| # Runtime shared libraries the vllm backend needs (libnuma, | |
| # libgomp) are packaged into the backend image via package.sh | |
| # and NOT installed on the host — that way the CI exercises the | |
| # packaging path end-to-end and catches missing libs that users | |
| # would otherwise hit on a bare production host. | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| make build-essential curl unzip ca-certificates git tar | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.4' | |
| - name: Free disk space | |
| run: | | |
| sudo rm -rf /usr/share/dotnet /opt/ghc /usr/local/lib/android /opt/hostedtoolcache/CodeQL || true | |
| df -h | |
| - name: Build vllm (cpu) backend image and run gRPC e2e tests | |
| run: | | |
| make test-extra-backend-vllm | |
| tests-acestep-cpp: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.acestep-cpp == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake curl libopenblas-dev ffmpeg | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| - name: Display Go version | |
| run: go version | |
| - name: Proto Dependencies | |
| run: | | |
| # Install protoc | |
| curl -L -s https://github.com/protocolbuffers/protobuf/releases/download/v26.1/protoc-26.1-linux-x86_64.zip -o protoc.zip && \ | |
| unzip -j -d /usr/local/bin protoc.zip bin/protoc && \ | |
| rm protoc.zip | |
| go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2 | |
| go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@1958fcbe2ca8bd93af633f11e97d44e567e945af | |
| PATH="$PATH:$HOME/go/bin" make protogen-go | |
| - name: Build acestep-cpp | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/go/acestep-cpp | |
| - name: Test acestep-cpp | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/go/acestep-cpp test | |
| tests-qwen3-tts-cpp: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.qwen3-tts-cpp == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake curl libopenblas-dev ffmpeg | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| - name: Display Go version | |
| run: go version | |
| - name: Proto Dependencies | |
| run: | | |
| # Install protoc | |
| curl -L -s https://github.com/protocolbuffers/protobuf/releases/download/v26.1/protoc-26.1-linux-x86_64.zip -o protoc.zip && \ | |
| unzip -j -d /usr/local/bin protoc.zip bin/protoc && \ | |
| rm protoc.zip | |
| go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2 | |
| go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@1958fcbe2ca8bd93af633f11e97d44e567e945af | |
| PATH="$PATH:$HOME/go/bin" make protogen-go | |
| - name: Build qwen3-tts-cpp | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/go/qwen3-tts-cpp | |
| - name: Test qwen3-tts-cpp | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/go/qwen3-tts-cpp test | |
| tests-voxtral: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.voxtral == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake curl libopenblas-dev ffmpeg | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| # You can test your matrix by printing the current Go version | |
| - name: Display Go version | |
| run: go version | |
| - name: Proto Dependencies | |
| run: | | |
| # Install protoc | |
| curl -L -s https://github.com/protocolbuffers/protobuf/releases/download/v26.1/protoc-26.1-linux-x86_64.zip -o protoc.zip && \ | |
| unzip -j -d /usr/local/bin protoc.zip bin/protoc && \ | |
| rm protoc.zip | |
| go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2 | |
| go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@1958fcbe2ca8bd93af633f11e97d44e567e945af | |
| PATH="$PATH:$HOME/go/bin" make protogen-go | |
| - name: Build voxtral | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/go/voxtral | |
| - name: Test voxtral | |
| run: | | |
| make --jobs=5 --output-sync=target -C backend/go/voxtral test | |
| tests-kokoros: | |
| needs: detect-changes | |
| if: needs.detect-changes.outputs.kokoros == 'true' || needs.detect-changes.outputs.run-all == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake pkg-config protobuf-compiler clang libclang-dev | |
| sudo apt-get install -y espeak-ng libespeak-ng-dev libsonic-dev libpcaudio-dev libopus-dev libssl-dev | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: Build kokoros | |
| run: | | |
| make -C backend/rust/kokoros kokoros-grpc | |
| - name: Test kokoros | |
| run: | | |
| make -C backend/rust/kokoros test |