Skip to content

Commit 5133dcc

Browse files
jeremyfowersclaude
andauthored
ci: stop building unused targets in the validate workflows (#3052)
* ci: stop building unused targets in the validate workflows The llama.cpp and vLLM validate jobs built every CMake target; both only need lemond (plus the CLI for sd.cpp/vLLM). Cache build/_deps in the three validate jobs and drop the `Remove-Item build` that would have deleted the restored cache. - validate_llamacpp: all targets -> lemond, BUILD_WEB_APP=OFF, _deps cache - validate_sdcpp: _deps cache, drop build/ wipe - validate_vllm: all targets -> lemond lemonade, _deps cache - actions/cache v4 -> v5 in the Windows embeddable job Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * ci: address review on the validate build caches - vLLM: install build deps directly instead of ./setup.sh, whose "Preparing build directory" step rm -rf's the restored _deps cache - share one _deps cache between the two Windows validate jobs rather than writing one each; the repo is near the 10 GB Actions cache cap - add toolchain/runner-image markers and cmake/*.cmake to the cache keys - verify build/lemonade in the vLLM build job - finish the action-version bump in the Windows embeddable job Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Revert "ci: bump action versions in the Windows embeddable job" The embeddable job neither builds validate targets nor shares a cache with them, so the action-version bumps do not belong in this PR. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * ci: drop the _deps cache from the validate workflows The warm-cache rerun showed it does not pay for itself: 2 of 3 jobs missed even though the prior attempt had saved both keys 14 hours earlier (the repo's Actions cache is at its 10 GB cap, so ~550 MB entries are evicted within hours), and the job that did hit got slower. Configure dominates these builds and reconfigures either way, leaving a ~30s ceiling on a 10-minute job. Also reverts the two changes that only existed to protect the cache: the `Remove-Item build` deletions and vLLM's direct apt-get install in place of setup.sh. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent e492992 commit 5133dcc

3 files changed

Lines changed: 22 additions & 11 deletions

File tree

.github/workflows/validate_llamacpp.yml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -376,15 +376,20 @@ jobs:
376376
377377
$script | python -
378378
379-
- name: Build C++ Server with CMake
379+
- name: Build lemond
380380
shell: PowerShell
381381
run: |
382382
$ErrorActionPreference = "Stop"
383383
Write-Host "Building Lemonade server binaries..." -ForegroundColor Cyan
384384
if (Test-Path "build") { Remove-Item -Recurse -Force "build" }
385-
cmake --preset vs18
385+
# The validation drives lemond over HTTP and never invokes the CLI,
386+
# so lemond is the only target it needs.
387+
cmake --preset vs18 -DBUILD_WEB_APP=OFF
386388
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
387-
cmake --build build --config Release
389+
# /m:2 goes straight to MSBuild rather than through --parallel, which
390+
# makes CMake set CL_MPCount=1 and cancel the /MP in CMakeLists.txt.
391+
# Capped at 2 because /MP already spawns one cl.exe per core.
392+
cmake --build build --config Release --target lemond -- /m:2
388393
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
389394
if (-not (Test-Path "build\Release\lemond.exe")) {
390395
Write-Host "ERROR: lemond.exe not found!" -ForegroundColor Red
@@ -628,7 +633,7 @@ jobs:
628633
)
629634
}
630635
)
631-
636+
632637
foreach ($process in $staleProcesses) {
633638
Write-Host "Stopping stale $($process.Name) PID $($process.ProcessId)." `
634639
-ForegroundColor Yellow
@@ -642,7 +647,7 @@ jobs:
642647
}
643648
}
644649
}
645-
650+
646651
- uses: actions/checkout@v5
647652
with:
648653
clean: true
@@ -831,7 +836,7 @@ jobs:
831836
if ($validationExitCode -ne 0) {
832837
exit $validationExitCode
833838
}
834-
839+
835840
- name: Upload results
836841
if: always()
837842
uses: actions/upload-artifact@v7

.github/workflows/validate_sdcpp.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,15 +231,20 @@ jobs:
231231
--release "${{ needs.discover-release.outputs.cuda_release }}" `
232232
--backends "${{ needs.discover-release.outputs.cuda_update_backends }}"
233233
234-
- name: Build C++ Server with CMake
234+
- name: Build lemond and the CLI
235235
shell: PowerShell
236236
run: |
237237
$ErrorActionPreference = "Stop"
238238
Write-Host "Building Lemonade server binaries..." -ForegroundColor Cyan
239239
if (Test-Path "build") { Remove-Item -Recurse -Force "build" }
240-
cmake --preset vs18
240+
# BUILD_WEB_APP=OFF skips the configure-time CONFIGURE_DEPENDS glob
241+
# over src/app; the web-app target is not in this build graph anyway.
242+
cmake --preset vs18 -DBUILD_WEB_APP=OFF
241243
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
242-
cmake --build build --config Release --target lemond lemonade
244+
# /m:2 goes straight to MSBuild rather than through --parallel, which
245+
# makes CMake set CL_MPCount=1 and cancel the /MP in CMakeLists.txt.
246+
# Capped at 2 because /MP already spawns one cl.exe per core.
247+
cmake --build build --config Release --target lemond lemonade -- /m:2
243248
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
244249
if (-not (Test-Path "build\Release\lemond.exe")) {
245250
Write-Host "ERROR: lemond.exe not found!" -ForegroundColor Red

.github/workflows/validate_vllm.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,15 @@ jobs:
8686
print(f"vllm.rocm: {old} -> {release}")
8787
PY
8888
89-
- name: Build Lemonade server
89+
- name: Build lemond and the CLI
9090
run: |
9191
set -e
9292
./setup.sh
9393
# Skip the web app; CI only exercises the backend.
9494
cmake -DBUILD_WEB_APP=OFF --preset default
95-
cmake --build --preset default
95+
cmake --build --preset default --target lemond lemonade
9696
test -f build/lemond || { echo "lemond not found!"; exit 1; }
97+
test -f build/lemonade || { echo "lemonade not found!"; exit 1; }
9798
echo "Build successful!"
9899
99100
- name: Upload build artifacts

0 commit comments

Comments
 (0)