chore: ⬆️ Update ggml-org/llama.cpp to fb15d649ed14ab447eeab911e0c9d21e35fb243e
#15582
Workflow file for this run
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' | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
tags: | |
- '*' | |
env: | |
GRPC_VERSION: v1.65.0 | |
concurrency: | |
group: ci-tests-${{ github.head_ref || github.ref }}-${{ github.repository }} | |
cancel-in-progress: true | |
jobs: | |
tests-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
go-version: ['1.21.x'] | |
steps: | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tool-cache: true | |
# all of these default to true, but feel free to set to | |
# "false" if necessary for your workflow | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- 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 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 | |
df -h | |
- name: Clone | |
uses: actions/checkout@v5 | |
with: | |
submodules: true | |
- name: Setup Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
cache: false | |
# 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/[email protected] | |
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@1958fcbe2ca8bd93af633f11e97d44e567e945af | |
PATH="$PATH:$HOME/go/bin" make protogen-go | |
- name: Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install build-essential ccache upx-ucl curl ffmpeg | |
sudo apt-get install -y libgmock-dev clang | |
# Install UV | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
sudo apt-get install -y ca-certificates cmake patch python3-pip unzip | |
sudo apt-get install -y libopencv-dev | |
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 | |
curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb | |
sudo dpkg -i cuda-keyring_1.1-1_all.deb | |
sudo apt-get update | |
sudo apt-get install -y cuda-nvcc-${CUDA_VERSION} libcublas-dev-${CUDA_VERSION} | |
export CUDACXX=/usr/local/cuda/bin/nvcc | |
# The python3-grpc-tools package in 22.04 is too old | |
pip install --user grpcio-tools==1.71.0 grpcio==1.71.0 | |
make -C backend/python/transformers | |
make backends/huggingface backends/llama-cpp backends/local-store backends/silero-vad backends/piper backends/whisper backends/stablediffusion-ggml | |
env: | |
CUDA_VERSION: 12-4 | |
- name: Test | |
run: | | |
PATH="$PATH:/root/go/bin" GO_TAGS="tts" make --jobs 5 --output-sync=target test | |
- name: Setup tmate session if tests fail | |
if: ${{ failure() }} | |
uses: mxschmitt/[email protected] | |
with: | |
detached: true | |
connect-timeout-seconds: 180 | |
limit-access-to-actor: true | |
tests-aio-container: | |
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 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 | |
df -h | |
- name: Clone | |
uses: actions/checkout@v5 | |
with: | |
submodules: true | |
- name: 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/[email protected] | |
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@1958fcbe2ca8bd93af633f11e97d44e567e945af | |
PATH="$PATH:$HOME/go/bin" make protogen-go | |
- name: Test | |
run: | | |
PATH="$PATH:$HOME/go/bin" make backends/local-store backends/silero-vad backends/llama-cpp backends/whisper backends/piper backends/stablediffusion-ggml docker-build-aio e2e-aio | |
- name: Setup tmate session if tests fail | |
if: ${{ failure() }} | |
uses: mxschmitt/[email protected] | |
with: | |
detached: true | |
connect-timeout-seconds: 180 | |
limit-access-to-actor: true | |
tests-apple: | |
runs-on: macOS-14 | |
strategy: | |
matrix: | |
go-version: ['1.21.x'] | |
steps: | |
- name: Clone | |
uses: actions/checkout@v5 | |
with: | |
submodules: true | |
- name: Setup Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
cache: false | |
# You can test your matrix by printing the current Go version | |
- name: Display Go version | |
run: go version | |
- name: Dependencies | |
run: | | |
brew install protobuf grpc make protoc-gen-go protoc-gen-go-grpc libomp llvm | |
pip install --user --no-cache-dir grpcio-tools==1.71.0 grpcio==1.71.0 | |
- name: Build llama-cpp-darwin | |
run: | | |
make protogen-go | |
make backends/llama-cpp-darwin | |
- name: Test | |
run: | | |
export C_INCLUDE_PATH=/usr/local/include | |
export CPLUS_INCLUDE_PATH=/usr/local/include | |
export CC=/opt/homebrew/opt/llvm/bin/clang | |
# Used to run the newer GNUMake version from brew that supports --output-sync | |
export PATH="/opt/homebrew/opt/make/libexec/gnubin:$PATH" | |
PATH="$PATH:$HOME/go/bin" make protogen-go | |
PATH="$PATH:$HOME/go/bin" BUILD_TYPE="GITHUB_CI_HAS_BROKEN_METAL" CMAKE_ARGS="-DGGML_F16C=OFF -DGGML_AVX512=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF" make --jobs 4 --output-sync=target test | |
- name: Setup tmate session if tests fail | |
if: ${{ failure() }} | |
uses: mxschmitt/[email protected] | |
with: | |
detached: true | |
connect-timeout-seconds: 180 | |
limit-access-to-actor: true |