Skip to content

Commit a5ad8c0

Browse files
committed
chore(ci): cache GGUF assets and make unit tests optional
- Added SKIP_UNITTEST flag to the Makefile so platforms lacking the necessary tooling (Android, Linux-musl, Windows) can run only the sqlite CLI smoke test while macOS/Linux keep running the full C harness. - Fixed platform-specific issues: removed -ldl on Windows builds, adjusted workflow verification steps, and ensured model paths/devices are handled cleanly.
1 parent 7c78e70 commit a5ad8c0

File tree

2 files changed

+22
-15
lines changed

2 files changed

+22
-15
lines changed

.github/workflows/main.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,12 @@ jobs:
8888
arch: x86_64
8989
name: linux-musl-cpu
9090
container: alpine:latest
91-
make: LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_AVX2=ON"
91+
make: SKIP_UNITTEST=1 LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_AVX2=ON"
9292
- os: ubuntu-22.04
9393
arch: x86_64
9494
name: linux-musl-gpu
9595
container: alpine:latest
96-
make: LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_OPENCL=ON"
96+
make: SKIP_UNITTEST=1 LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_OPENCL=ON"
9797
- os: ubuntu-22.04-arm
9898
arch: arm64
9999
name: linux-musl-cpu
@@ -105,20 +105,20 @@ jobs:
105105
- os: windows-2022
106106
arch: x86_64
107107
name: windows-cpu
108-
make: LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_AVX2=ON"
108+
make: SKIP_UNITTEST=1 LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_AVX2=ON"
109109
- os: windows-2022
110110
arch: x86_64
111111
name: windows-gpu
112-
make: LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_VULKAN=ON -DGGML_OPENCL=ON"
112+
make: SKIP_UNITTEST=1 LLAMA="-DGGML_NATIVE=OFF -DGGML_CPU=ON -DGGML_VULKAN=ON -DGGML_OPENCL=ON"
113113
- os: ubuntu-22.04
114114
arch: x86_64
115115
name: android
116-
make: PLATFORM=android ARCH=x86_64
116+
make: SKIP_UNITTEST=1 PLATFORM=android ARCH=x86_64
117117
sqlite-amalgamation-zip: https://sqlite.org/2025/sqlite-amalgamation-3490100.zip
118118
- os: ubuntu-22.04
119119
arch: arm64-v8a
120120
name: android
121-
make: PLATFORM=android ARCH=arm64-v8a
121+
make: SKIP_UNITTEST=1 PLATFORM=android ARCH=arm64-v8a
122122
- os: macos-15
123123
name: ios
124124
make: PLATFORM=ios LLAMA="-DGGML_NATIVE=OFF -DGGML_METAL=ON -DGGML_ACCELERATE=ON -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=Apple" WHISPER="-DWHISPER_COREML=ON -DWHISPER_COREML_ALLOW_FALLBACK=ON"

Makefile

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ GGUF_MODEL_DIR ?= tests/models/unsloth/gemma-3-270m-it-GGUF
3434
GGUF_MODEL_NAME ?= gemma-3-270m-it-UD-IQ2_M.gguf
3535
GGUF_MODEL_URL ?= https://huggingface.co/unsloth/gemma-3-270m-it-GGUF/resolve/main/gemma-3-270m-it-UD-IQ2_M.gguf
3636
GGUF_MODEL_PATH := $(GGUF_MODEL_DIR)/$(GGUF_MODEL_NAME)
37+
SKIP_UNITTEST ?= 0
3738
LLAMA_DIR = modules/llama.cpp
3839
WHISPER_DIR = modules/whisper.cpp
3940
MINIAUDIO_DIR = modules/miniaudio
@@ -60,9 +61,12 @@ LLAMA_LDFLAGS = -L./$(BUILD_LLAMA)/common -L./$(BUILD_GGML)/lib -L./$(BUILD_LLAM
6061
WHISPER_LDFLAGS = -L./$(BUILD_WHISPER)/src -lwhisper
6162
MINIAUDIO_LDFLAGS = -L./$(BUILD_MINIAUDIO) -lminiaudio -lminiaudio_channel_combiner_node -lminiaudio_channel_separator_node -lminiaudio_ltrim_node -lminiaudio_reverb_node -lminiaudio_vocoder_node
6263
LDFLAGS = $(LLAMA_LDFLAGS) $(WHISPER_LDFLAGS) $(MINIAUDIO_LDFLAGS)
63-
SQLITE_TEST_LIBS = -lpthread -lm
64-
ifneq ($(PLATFORM),macos)
65-
SQLITE_TEST_LIBS += -ldl
64+
SQLITE_TEST_LIBS =
65+
ifneq ($(PLATFORM),windows)
66+
SQLITE_TEST_LIBS += -lpthread -lm
67+
ifneq ($(PLATFORM),macos)
68+
SQLITE_TEST_LIBS += -ldl
69+
endif
6670
endif
6771
SQLITE_TEST_SRC = tests/c/sqlite3.c
6872

@@ -228,15 +232,18 @@ $(GGUF_MODEL_PATH):
228232
@mkdir -p $(GGUF_MODEL_DIR)
229233
curl -L --fail --retry 3 -o $@ $(GGUF_MODEL_URL)
230234

231-
ifeq ($(PLATFORM),android)
232-
test: $(TARGET)
233-
@echo "Running sqlite3 CLI smoke test inside Android environment..."
234-
$(SQLITE3) ":memory:" -cmd ".bail on" ".load ./dist/ai" "SELECT ai_version();"
235-
else
236-
test: $(TARGET) $(CTEST_BIN) $(GGUF_MODEL_PATH)
235+
TEST_DEPS := $(TARGET)
236+
ifeq ($(SKIP_UNITTEST),0)
237+
TEST_DEPS += $(CTEST_BIN) $(GGUF_MODEL_PATH)
238+
endif
239+
240+
test: $(TEST_DEPS)
237241
@echo "Running sqlite3 CLI smoke test (ensures .load works)..."
238242
$(SQLITE3) ":memory:" -cmd ".bail on" ".load ./dist/ai" "SELECT ai_version();"
243+
ifeq ($(SKIP_UNITTEST),0)
239244
$(CTEST_BIN) --extension "$(TARGET)" --model "$(GGUF_MODEL_PATH)"
245+
else
246+
@echo "Skipping C unit tests (SKIP_UNITTEST=$(SKIP_UNITTEST))."
240247
endif
241248

242249
# Build submodules

0 commit comments

Comments
 (0)