Backup old wheels before rebuilding and restore on failure

This commit is contained in:
Eugene Rakhmatulin
2026-02-17 23:13:25 -08:00
parent a49b89a0e5
commit b06531f70b

View File

@@ -202,11 +202,17 @@ if [ "$NO_BUILD" = false ]; then
if [ "$REBUILD_FLASHINFER" = true ] || [ "$FLASHINFER_WHEELS_EXIST" = false ]; then if [ "$REBUILD_FLASHINFER" = true ] || [ "$FLASHINFER_WHEELS_EXIST" = false ]; then
if [ "$REBUILD_FLASHINFER" = true ]; then if [ "$REBUILD_FLASHINFER" = true ]; then
echo "Rebuilding FlashInfer wheels (--rebuild-flashinfer specified)..." echo "Rebuilding FlashInfer wheels (--rebuild-flashinfer specified)..."
rm -f ./wheels/flashinfer*.whl
else else
echo "No FlashInfer wheels found in ./wheels/ — building..." echo "No FlashInfer wheels found in ./wheels/ — building..."
fi fi
# Back up existing flashinfer wheels; restore them if the build fails
FI_BACKUP="./wheels/.backup-flashinfer"
rm -rf "$FI_BACKUP" && mkdir -p "$FI_BACKUP"
for f in ./wheels/flashinfer*.whl; do
[ -f "$f" ] && mv "$f" "$FI_BACKUP/"
done
FI_CMD=("docker" "build" FI_CMD=("docker" "build"
"--target" "flashinfer-export" "--target" "flashinfer-export"
"--output" "type=local,dest=./wheels" "--output" "type=local,dest=./wheels"
@@ -220,9 +226,16 @@ if [ "$NO_BUILD" = false ]; then
echo "FlashInfer build command: ${FI_CMD[*]}" echo "FlashInfer build command: ${FI_CMD[*]}"
FI_START=$(date +%s) FI_START=$(date +%s)
"${FI_CMD[@]}" if "${FI_CMD[@]}"; then
FI_END=$(date +%s) FI_END=$(date +%s)
FLASHINFER_BUILD_TIME=$((FI_END - FI_START)) FLASHINFER_BUILD_TIME=$((FI_END - FI_START))
rm -rf "$FI_BACKUP"
else
echo "FlashInfer build failed — restoring previous wheels..."
mv "$FI_BACKUP"/flashinfer*.whl ./wheels/ 2>/dev/null || true
rm -rf "$FI_BACKUP"
exit 1
fi
else else
echo "FlashInfer wheels already present in ./wheels/ — skipping build." echo "FlashInfer wheels already present in ./wheels/ — skipping build."
fi fi
@@ -238,11 +251,17 @@ if [ "$NO_BUILD" = false ]; then
if [ "$REBUILD_VLLM" = true ] || [ "$VLLM_WHEELS_EXIST" = false ]; then if [ "$REBUILD_VLLM" = true ] || [ "$VLLM_WHEELS_EXIST" = false ]; then
if [ "$REBUILD_VLLM" = true ]; then if [ "$REBUILD_VLLM" = true ]; then
echo "Rebuilding vLLM wheels (--rebuild-vllm specified)..." echo "Rebuilding vLLM wheels (--rebuild-vllm specified)..."
rm -f ./wheels/vllm*.whl
else else
echo "No vLLM wheels found in ./wheels/ — building..." echo "No vLLM wheels found in ./wheels/ — building..."
fi fi
# Back up existing vllm wheels; restore them if the build fails
VLLM_BACKUP="./wheels/.backup-vllm"
rm -rf "$VLLM_BACKUP" && mkdir -p "$VLLM_BACKUP"
for f in ./wheels/vllm*.whl; do
[ -f "$f" ] && mv "$f" "$VLLM_BACKUP/"
done
VLLM_CMD=("docker" "build" VLLM_CMD=("docker" "build"
"--target" "vllm-export" "--target" "vllm-export"
"--output" "type=local,dest=./wheels" "--output" "type=local,dest=./wheels"
@@ -267,9 +286,16 @@ if [ "$NO_BUILD" = false ]; then
echo "vLLM build command: ${VLLM_CMD[*]}" echo "vLLM build command: ${VLLM_CMD[*]}"
VLLM_START=$(date +%s) VLLM_START=$(date +%s)
"${VLLM_CMD[@]}" if "${VLLM_CMD[@]}"; then
VLLM_END=$(date +%s) VLLM_END=$(date +%s)
VLLM_BUILD_TIME=$((VLLM_END - VLLM_START)) VLLM_BUILD_TIME=$((VLLM_END - VLLM_START))
rm -rf "$VLLM_BACKUP"
else
echo "vLLM build failed — restoring previous wheels..."
mv "$VLLM_BACKUP"/vllm*.whl ./wheels/ 2>/dev/null || true
rm -rf "$VLLM_BACKUP"
exit 1
fi
else else
echo "vLLM wheels already present in ./wheels/ — skipping build." echo "vLLM wheels already present in ./wheels/ — skipping build."
fi fi