More robust handling of wheels downloads
This commit is contained in:
@@ -116,20 +116,35 @@ for a in assets:
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local URL NAME
|
# Back up existing wheels so we never leave a mix of old and new on failure
|
||||||
|
local DL_BACKUP="$WHEELS_DIR/.backup-download-${PREFIX}"
|
||||||
|
rm -rf "$DL_BACKUP" && mkdir -p "$DL_BACKUP"
|
||||||
|
for f in "$WHEELS_DIR/${PREFIX}"*.whl; do
|
||||||
|
[ -f "$f" ] && mv "$f" "$DL_BACKUP/"
|
||||||
|
done
|
||||||
|
|
||||||
local URL NAME TMP_WHL
|
local URL NAME TMP_WHL
|
||||||
|
local DOWNLOADED=()
|
||||||
while IFS=' ' read -r URL NAME; do
|
while IFS=' ' read -r URL NAME; do
|
||||||
echo "Downloading $NAME..."
|
echo "Downloading $NAME..."
|
||||||
TMP_WHL=$(mktemp "$WHEELS_DIR/${NAME}.XXXXXX")
|
TMP_WHL=$(mktemp "$WHEELS_DIR/${NAME}.XXXXXX")
|
||||||
if curl -L --progress-bar --connect-timeout 30 "$URL" -o "$TMP_WHL"; then
|
if curl -L --progress-bar --connect-timeout 30 "$URL" -o "$TMP_WHL"; then
|
||||||
mv "$TMP_WHL" "$WHEELS_DIR/$NAME"
|
mv "$TMP_WHL" "$WHEELS_DIR/$NAME"
|
||||||
|
DOWNLOADED+=("$WHEELS_DIR/$NAME")
|
||||||
else
|
else
|
||||||
rm -f "$TMP_WHL"
|
rm -f "$TMP_WHL"
|
||||||
echo "Failed to download $NAME."
|
echo "Failed to download $NAME — removing other downloaded files."
|
||||||
|
for f in "${DOWNLOADED[@]}"; do rm -f "$f"; done
|
||||||
|
if compgen -G "$DL_BACKUP/${PREFIX}*.whl" > /dev/null 2>&1; then
|
||||||
|
echo "Restoring previous $PREFIX wheels..."
|
||||||
|
mv "$DL_BACKUP/${PREFIX}"*.whl "$WHEELS_DIR/"
|
||||||
|
fi
|
||||||
|
rm -rf "$DL_BACKUP"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
done <<< "$DOWNLOAD_LIST"
|
done <<< "$DOWNLOAD_LIST"
|
||||||
|
|
||||||
|
rm -rf "$DL_BACKUP"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,18 +283,13 @@ if [ "$NO_BUILD" = false ]; then
|
|||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
# Phase 1: FlashInfer wheels
|
# Phase 1: FlashInfer wheels
|
||||||
# ----------------------------------------------------------
|
# ----------------------------------------------------------
|
||||||
FLASHINFER_WHEELS_EXIST=false
|
|
||||||
if compgen -G "./wheels/flashinfer*.whl" > /dev/null 2>&1; then
|
|
||||||
FLASHINFER_WHEELS_EXIST=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
BUILD_FLASHINFER=false
|
BUILD_FLASHINFER=false
|
||||||
if [ "$REBUILD_FLASHINFER" = true ]; then
|
if [ "$REBUILD_FLASHINFER" = true ]; then
|
||||||
echo "Rebuilding FlashInfer wheels (--rebuild-flashinfer specified)..."
|
echo "Rebuilding FlashInfer wheels (--rebuild-flashinfer specified)..."
|
||||||
BUILD_FLASHINFER=true
|
BUILD_FLASHINFER=true
|
||||||
elif try_download_wheels "$FLASHINFER_RELEASE_TAG" "flashinfer"; then
|
elif try_download_wheels "$FLASHINFER_RELEASE_TAG" "flashinfer"; then
|
||||||
echo "FlashInfer wheels ready."
|
echo "FlashInfer wheels ready."
|
||||||
elif [ "$FLASHINFER_WHEELS_EXIST" = true ]; then
|
elif compgen -G "./wheels/flashinfer*.whl" > /dev/null 2>&1; then
|
||||||
echo "Download failed — using existing local FlashInfer wheels."
|
echo "Download failed — using existing local FlashInfer wheels."
|
||||||
else
|
else
|
||||||
echo "No FlashInfer wheels available (download failed) — building..."
|
echo "No FlashInfer wheels available (download failed) — building..."
|
||||||
|
|||||||
Reference in New Issue
Block a user