@@ -173,10 +173,15 @@ jobs: |
| 173 | 173 | slow-tests: |
| 174 | 174 | # Sprint 02: marker-gated tests that touch HF. Cache-keyed on |
| 175 | 175 | # (pyproject.toml hash, tiny-model revision) per audit guidance. |
| 176 | | - name: slow tests (hf-cache) |
| 176 | + # Sprint 11: also initializes + builds `vendor/llama.cpp` so export |
| 177 | + # integration tests can exercise real GGUF conversion. |
| 178 | + name: slow tests (hf-cache + llama.cpp) |
| 177 | 179 | runs-on: ubuntu-latest |
| 178 | 180 | steps: |
| 179 | | - - uses: actions/checkout@v4 |
| 181 | + - name: Checkout with llama.cpp submodule |
| 182 | + uses: actions/checkout@v4 |
| 183 | + with: |
| 184 | + submodules: recursive |
| 180 | 185 | |
| 181 | 186 | - name: Install uv |
| 182 | 187 | uses: astral-sh/setup-uv@v4 |
@@ -207,6 +212,22 @@ jobs: |
| 207 | 212 | print("tiny model at:", tiny_model_path()) |
| 208 | 213 | PY |
| 209 | 214 | |
| 215 | + - name: Restore llama.cpp build cache |
| 216 | + id: llama-cpp-cache |
| 217 | + uses: actions/cache@v4 |
| 218 | + with: |
| 219 | + path: vendor/llama.cpp/build |
| 220 | + # Cache key: submodule HEAD sha. Bumping llama.cpp invalidates the cache. |
| 221 | + key: llama-cpp-build-${{ hashFiles('.gitmodules', 'vendor/llama.cpp/VERSION') }} |
| 222 | + |
| 223 | + - name: Build llama-quantize (if not cached) |
| 224 | + if: steps.llama-cpp-cache.outputs.cache-hit != 'true' |
| 225 | + run: | |
| 226 | + set -euxo pipefail |
| 227 | + # ubuntu-latest ships cmake; `sudo apt-get install -y cmake` is a no-op fallback. |
| 228 | + command -v cmake >/dev/null 2>&1 || sudo apt-get install -y cmake |
| 229 | + scripts/bump-llama-cpp.sh build |
| 230 | + |
| 210 | 231 | - name: Run slow tests |
| 211 | 232 | env: |
| 212 | 233 | HF_HOME: ${{ github.workspace }}/.hf-cache |