94057c3d3e
PR Test (NPU) / check-changes (push) Has been cancelled
PR Test (NPU) / pr-gate (push) Has been cancelled
PR Test (NPU) / set-image-config (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-4-npu-a3 (push) Has been cancelled
PR Test (NPU) / stage-b-test-16-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-1-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-2-npu-a3 (push) Has been cancelled
PR Test (Arm64) / pr-gate (push) Has been cancelled
PR Test (Arm64) / check-changes (push) Has been cancelled
PR Test (Arm64) / build-test (push) Has been cancelled
PR Test (sgl-router) / gate (push) Has been cancelled
PR Test (sgl-router) / tier-1 — lint (push) Has been cancelled
PR Test (sgl-router) / tier-2 — build + test (push) Has been cancelled
PR Test (sgl-router) / tier-3 — docker (placeholder) (push) Has been cancelled
PR Test (sgl-router) / tier-3 — k8s integration (push) Has been cancelled
PR Test (sgl-router) / tier-3 — e2e (push) Has been cancelled
PR Test (sgl-router) / finish (push) Has been cancelled
PR Test (NPU) / single-node-poc (map[name:qwen3_6_27b_w8a8_1p_in64k_out1k_50ms runner:linux-aarch64-a3-2 test_case:test/registered/ascend/performance/qwen3_6_27b/test_npu_qwen3_6_27b_w8a8_1p_in64k_out1k_50ms.py test_type:perf]) (push) Has been cancelled
PR Test (NPU) / pr-test-npu-finish (push) Has been cancelled
PR Test (Xeon) / pr-gate (push) Has been cancelled
PR Test (Xeon) / check-changes (push) Has been cancelled
PR Test (Xeon) / build-test (, xeon-gnr, base-b-test-cpu) (push) Has been cancelled
PR Test (XPU) / check-changes (push) Has been cancelled
PR Test (XPU) / pr-gate (push) Has been cancelled
PR Test (XPU) / stage-a-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / wait-for-stage-a (push) Has been cancelled
PR Test (XPU) / stage-b-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / finish (push) Has been cancelled
CI Model Inventory / build-inventory (push) Has been cancelled
Lint / lint (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Compilation Check (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Manual Policy (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Request Processing (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Summary (push) Has been cancelled
PR Test (SMG) / build-wheel (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on windows (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (x86_64 - auto) (push) Has been cancelled
PR Test (SMG) / python-unit-tests (push) Has been cancelled
PR Test (SMG) / unit-tests (push) Has been cancelled
PR Test (SMG) / benchmarks (push) Has been cancelled
PR Test (SMG) / chat-completions (push) Has been cancelled
PR Test (SMG) / chat-completions-4gpu (push) Has been cancelled
PR Test (SMG) / e2e (push) Has been cancelled
PR Test (SMG) / docker-build-test (push) Has been cancelled
PR Test (SMG) / k8s-integration (push) Has been cancelled
PR Test (SMG) / finish (push) Has been cancelled
PR Test (SMG) / summarize-benchmarks (push) Has been cancelled
Release SGLang Model Gateway Docker Image / publish (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Build SDist (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Upload to PyPI (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (aarch64, 12.9, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (x86_64, 12.9, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu129 (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (aarch64, 13.0, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (x86_64, 13.0, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu130 (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 700) (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 720) (push) Has been cancelled
Release SGLang Kernels / release-rocm700 (push) Has been cancelled
Release SGLang Kernels / release-rocm720 (push) Has been cancelled
Release SGLang Kernels / build-musa43 (43, 3.10) (push) Has been cancelled
Release SGLang Kernels / release-musa43 (push) Has been cancelled
77 lines
3.2 KiB
Bash
Executable File
77 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Remove the per-job uv venv created by ci_install_dependency.sh.
|
|
#
|
|
# Meant to run in a post-job workflow step with `if: always()` so the venv is
|
|
# destroyed even on job failure/cancel. Runner-level safety net: a cron or
|
|
# startup task should also purge stale /tmp/sglang-ci-* directories to catch
|
|
# cancelled or crashed jobs that never reached this cleanup.
|
|
|
|
# Best-effort cleanup: never fail the job.
|
|
set +e
|
|
set -u
|
|
|
|
# Bound the persistent uv cache (~/.cache/uv, bind-mounted and shared across all
|
|
# runner containers). Nothing else evicts it, so it grows unbounded — on the 5090
|
|
# hosts it reached ~500 GB and filled the disk, failing jobs with ENOSPC at
|
|
# dependency install. Prune only under real disk pressure so healthy jobs pay
|
|
# nothing (just a df check) and no rebuildable wheel is dropped until it matters:
|
|
# `uv cache prune --ci` keeps downloaded wheels + sdist archives (no re-download)
|
|
# but drops built wheels, so a later install may recompile source-built packages.
|
|
# Best effort; runs regardless of venv mode; never fails the job.
|
|
if command -v uv >/dev/null 2>&1; then
|
|
cache_dir="$(uv cache dir 2>/dev/null || echo "${HOME:-/root}/.cache/uv")"
|
|
[ -d "$cache_dir" ] || cache_dir=/
|
|
used="$(df --output=pcent "$cache_dir" 2>/dev/null | tr -dc '0-9')"
|
|
if [ "${used:-0}" -ge 85 ]; then
|
|
echo "uv cache filesystem at ${used}% — pruning"
|
|
uv cache prune --ci >/dev/null 2>&1 || true
|
|
fi
|
|
fi
|
|
|
|
# Skip entirely when venv mode is disabled — no /tmp/sglang-ci-* dir exists
|
|
# and there's nothing to sweep. Matches the USE_VENV parsing in
|
|
# ci_install_dependency.sh (accepts 1/true/yes, case-insensitive).
|
|
USE_VENV_RAW="${USE_VENV:-true}"
|
|
case "$(printf '%s' "$USE_VENV_RAW" | tr '[:upper:]' '[:lower:]')" in
|
|
1 | true | yes) ;;
|
|
*)
|
|
echo "USE_VENV=${USE_VENV_RAW}: skipping venv cleanup"
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
# Prefer the path propagated via GITHUB_ENV. Fallback: glob for any venv from
|
|
# this run+job (covers the case where install crashed before exporting the path).
|
|
if [ -n "${SGLANG_CI_VENV_PATH:-}" ] && [ -d "$SGLANG_CI_VENV_PATH" ]; then
|
|
if rm -rf "$SGLANG_CI_VENV_PATH"; then
|
|
echo "Cleaned up venv: $SGLANG_CI_VENV_PATH"
|
|
else
|
|
echo "::warning::Failed to remove $SGLANG_CI_VENV_PATH — runner cron should sweep /tmp/sglang-ci-*"
|
|
fi
|
|
else
|
|
matched=0
|
|
for venv in /tmp/sglang-ci-${GITHUB_RUN_ID:-unknownrun}-${GITHUB_JOB:-unknownjob}-*; do
|
|
[ -d "$venv" ] || continue
|
|
matched=1
|
|
if rm -rf "$venv"; then
|
|
echo "Cleaned up venv (via glob): $venv"
|
|
else
|
|
echo "::warning::Failed to remove $venv — runner cron should sweep /tmp/sglang-ci-*"
|
|
fi
|
|
done
|
|
[ "$matched" -eq 0 ] && echo "No venv to clean for run=${GITHUB_RUN_ID:-?} job=${GITHUB_JOB:-?}"
|
|
fi
|
|
|
|
# Sweep stale venvs from cancelled/crashed jobs that never reached cleanup.
|
|
# Any /tmp/sglang-ci-* dir older than 4 hours is considered orphaned.
|
|
stale_count=0
|
|
for venv in /tmp/sglang-ci-*; do
|
|
[ -d "$venv" ] || continue
|
|
if find "$venv" -maxdepth 0 -mmin +240 -print -quit | grep -q .; then
|
|
rm -rf "$venv" && stale_count=$((stale_count + 1))
|
|
fi
|
|
done
|
|
[ "$stale_count" -gt 0 ] && echo "Swept $stale_count stale venv(s) older than 4h"
|
|
|
|
exit 0
|