Skip to content

Commit bf109c2

Browse files
committed
ci: enable sccache on the CUDA dockcross job; manylinux2014 verified (phase 2, job 2)
manylinux2014 (job 1) verified green in PR #245: sccache v0.16.0 probe passed inside the container (devtoolset-10 gcc), cache ON over Depot WebDAV, cold run stored 275 objects. The v0.8.2 in-container panic does not occur on v0.16.0. Dropped job 1's first-run diagnostics (SCCACHE_LOG/SCCACHE_ERROR_LOG/RUST_BACKTRACE) to its steady-state env. Enable job 2: crosscompile-linux-x86_64-cuda (manylinux_2_28 + CUDA via build_cuda_linux.sh, which execs build.sh, so the same probe guards it). Diagnostics on for its first run on the manylinux_2_28 image. Only the gcc C/C++ TUs cache; nvcc .cu kernels are not wrapped. aarch64/android/opencl-android/Windows stay uncached until each is verified — one job at a time. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjWiKSyNzqqpobSKYRiew5
1 parent 1ea472e commit bf109c2

2 files changed

Lines changed: 29 additions & 17 deletions

File tree

.github/workflows/publish.yml

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,20 @@ jobs:
171171
name: Cross-Compile manylinux_2_28 x86_64 (CUDA)
172172
needs: [startgate, build-webui]
173173
runs-on: ubuntu-latest
174+
# Phase 2 dockcross cache rollout — job 2, enabled after manylinux2014 (job 1) verified green
175+
# in CI with sccache v0.16.0 caching to Depot. build_cuda_linux.sh execs build.sh, so the same
176+
# probe guards this job: only the gcc C/C++ TUs cache (the nvcc .cu kernels are not wrapped),
177+
# still a large partial win on this ~70 min build. Diagnostics are on for its first run on the
178+
# manylinux_2_28 image; drop them (and their -e passthroughs) once it is confirmed green with a
179+
# cache hit, then enable the next job. Inert without DEPOT_TOKEN (fork PRs) or use_cache=false.
180+
env:
181+
USE_CACHE: ${{ github.event_name != 'workflow_dispatch' || inputs.use_cache }}
182+
SCCACHE_WEBDAV_ENDPOINT: https://cache.depot.dev
183+
SCCACHE_WEBDAV_TOKEN: ${{ secrets.DEPOT_TOKEN }}
184+
SCCACHE_LOG: debug
185+
SCCACHE_ERROR_LOG: /tmp/sccache_server.log
186+
RUST_BACKTRACE: full
187+
DOCKCROSS_ARGS: "-e SCCACHE_WEBDAV_ENDPOINT -e SCCACHE_WEBDAV_TOKEN -e USE_CACHE -e SCCACHE_LOG -e SCCACHE_ERROR_LOG -e RUST_BACKTRACE"
174188
steps:
175189
- uses: actions/checkout@v6
176190
- name: Download shared WebUI assets
@@ -200,22 +214,17 @@ jobs:
200214
name: Cross-Compile manylinux2014 x86_64
201215
needs: [startgate, build-webui]
202216
runs-on: ubuntu-latest
203-
# Phase 2 dockcross cache rollout — FIRST job (fastest plain-build.sh job, cleanest probe).
204-
# build.sh now probe-compiles through sccache before trusting it as the launcher, so a
205-
# present-but-crashing in-container sccache (the panic that stalled the first attempt) falls
206-
# back to an uncached, green -O3 build instead of redding it. The diagnostic vars below are
207-
# forwarded into the container so this run captures the root cause if the panic recurs; drop
208-
# SCCACHE_LOG / SCCACHE_ERROR_LOG / RUST_BACKTRACE (and their -e passthroughs) once the cache
209-
# is confirmed working here, then roll out to the next dockcross job. Inert without DEPOT_TOKEN
210-
# (fork PRs) or with use_cache=false.
217+
# Phase 2 dockcross cache rollout — job 1, VERIFIED green in CI (PR #245): sccache v0.16.0
218+
# probe passed in-container (devtoolset-10 gcc), cache ON over Depot WebDAV (cold run: 275
219+
# objects stored). Steady-state env below — the first-run diagnostics (SCCACHE_LOG /
220+
# SCCACHE_ERROR_LOG / RUST_BACKTRACE) were dropped now that it is proven. Inert without
221+
# DEPOT_TOKEN (fork PRs) or with use_cache=false; a crashing sccache still falls back to a
222+
# green uncached build via the build.sh probe.
211223
env:
212224
USE_CACHE: ${{ github.event_name != 'workflow_dispatch' || inputs.use_cache }}
213225
SCCACHE_WEBDAV_ENDPOINT: https://cache.depot.dev
214226
SCCACHE_WEBDAV_TOKEN: ${{ secrets.DEPOT_TOKEN }}
215-
SCCACHE_LOG: debug
216-
SCCACHE_ERROR_LOG: /tmp/sccache_server.log
217-
RUST_BACKTRACE: full
218-
DOCKCROSS_ARGS: "-e SCCACHE_WEBDAV_ENDPOINT -e SCCACHE_WEBDAV_TOKEN -e USE_CACHE -e SCCACHE_LOG -e SCCACHE_ERROR_LOG -e RUST_BACKTRACE"
227+
DOCKCROSS_ARGS: "-e SCCACHE_WEBDAV_ENDPOINT -e SCCACHE_WEBDAV_TOKEN -e USE_CACHE"
219228
steps:
220229
- uses: actions/checkout@v6
221230
- name: Download shared WebUI assets

CLAUDE.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,14 @@ a time and verified green in CI before the next**. (The first attempt enabled al
213213
and was reverted: the static-musl sccache panicked in-container and — pre-probe — redded the
214214
build. The probe above now makes that a safe fallback.) Order, each adding the env + a
215215
`DOCKCROSS_ARGS` passthrough:
216-
1. `crosscompile-linux-x86_64` (manylinux2014) — **enabled first**, with `SCCACHE_LOG=debug` +
217-
`SCCACHE_ERROR_LOG` + `RUST_BACKTRACE=full` so the run captures the panic root cause if it
218-
recurs. Once green with a cache hit in `sccache --show-stats`, drop the diagnostic vars.
219-
2. `crosscompile-linux-x86_64-cuda` (via `build_cuda_linux.sh`, which execs `build.sh`) — only
220-
the gcc C/C++ TUs cache (134 model files + ggml + httplib); the nvcc `.cu` kernels won't
216+
1. `crosscompile-linux-x86_64` (manylinux2014) — ✅ **verified green** in PR #245: sccache
217+
**v0.16.0** probe passed in-container (devtoolset-10 gcc), `sccache ON` over Depot WebDAV,
218+
cold run stored 275 objects (3 hits). The **v0.8.2 in-container panic is gone on v0.16.0**;
219+
first-run diagnostics dropped, steady-state env = `USE_CACHE` + the two `SCCACHE_WEBDAV_*`
220+
+ `DOCKCROSS_ARGS`.
221+
2. `crosscompile-linux-x86_64-cuda` (via `build_cuda_linux.sh`, which execs `build.sh`) —
222+
🚧 **enabled next** (diagnostics on for its first run on the manylinux_2_28 image). Only the
223+
gcc C/C++ TUs cache (134 model files + ggml + httplib); the nvcc `.cu` kernels won't
221224
(limited sccache nvcc support) — still a large partial win on the ~70 min job.
222225
3. `crosscompile-linux-aarch64`, then 4. `crosscompile-android-aarch64`.
223226
5. `crosscompile-android-aarch64-opencl`**separate**, uses `build_opencl_android.sh` (not

0 commit comments

Comments
 (0)