fix: Improve artifact handling by removing old files and selecting the latest builds

This commit is contained in:
Janez T
2025-10-22 20:05:27 +02:00
parent 18cbdf678d
commit 0955d0feab

View File

@@ -556,6 +556,7 @@ jobs:
# For main branch, also prepare the 'latest' directory # For main branch, also prepare the 'latest' directory
if [ "${{ steps.metadata.outputs.branch_name }}" == "main" ]; then if [ "${{ steps.metadata.outputs.branch_name }}" == "main" ]; then
mkdir -p r2-upload/unstable/latest mkdir -p r2-upload/unstable/latest
rm -f r2-upload/unstable/latest/* 2>/dev/null || true
fi fi
# Helper function to find and copy artifact # Helper function to find and copy artifact
@@ -674,6 +675,12 @@ jobs:
fi fi
} }
# Grab the newest file matching a glob, ignoring older runs hanging around.
get_latest_file() {
local pattern="$1"
ls -1t "$BUILD_DIR"/$pattern 2>/dev/null | head -n 1
}
# Generate download links HTML # Generate download links HTML
cat > "$BUILD_DIR/index.html" <<'HTMLEOF' cat > "$BUILD_DIR/index.html" <<'HTMLEOF'
<!DOCTYPE html> <!DOCTYPE html>
@@ -929,9 +936,10 @@ jobs:
HTMLEOF HTMLEOF
# Add Android APK if exists # Add Android APK if exists
if [ -f "$BUILD_DIR"/*.apk ]; then APK_PATH=$(get_latest_file "*.apk")
APK_FILE=$(basename "$BUILD_DIR"/*.apk) if [ -n "$APK_PATH" ]; then
APK_SIZE=$(get_size "$BUILD_DIR/$APK_FILE") APK_FILE=$(basename "$APK_PATH")
APK_SIZE=$(get_size "$APK_PATH")
cat >> "$BUILD_DIR/index.html" <<HTMLEOF cat >> "$BUILD_DIR/index.html" <<HTMLEOF
<div class="download-card"> <div class="download-card">
<div class="download-info"> <div class="download-info">
@@ -948,9 +956,10 @@ jobs:
fi fi
# Add Android AAB if exists # Add Android AAB if exists
if [ -f "$BUILD_DIR"/*.aab ]; then AAB_PATH=$(get_latest_file "*.aab")
AAB_FILE=$(basename "$BUILD_DIR"/*.aab) if [ -n "$AAB_PATH" ]; then
AAB_SIZE=$(get_size "$BUILD_DIR/$AAB_FILE") AAB_FILE=$(basename "$AAB_PATH")
AAB_SIZE=$(get_size "$AAB_PATH")
cat >> "$BUILD_DIR/index.html" <<HTMLEOF cat >> "$BUILD_DIR/index.html" <<HTMLEOF
<div class="download-card"> <div class="download-card">
<div class="download-info"> <div class="download-info">
@@ -967,9 +976,10 @@ jobs:
fi fi
# Add macOS DMG if exists # Add macOS DMG if exists
if [ -f "$BUILD_DIR"/*.dmg ]; then DMG_PATH=$(get_latest_file "*.dmg")
DMG_FILE=$(basename "$BUILD_DIR"/*.dmg) if [ -n "$DMG_PATH" ]; then
DMG_SIZE=$(get_size "$BUILD_DIR/$DMG_FILE") DMG_FILE=$(basename "$DMG_PATH")
DMG_SIZE=$(get_size "$DMG_PATH")
cat >> "$BUILD_DIR/index.html" <<HTMLEOF cat >> "$BUILD_DIR/index.html" <<HTMLEOF
<div class="download-card"> <div class="download-card">
<div class="download-info"> <div class="download-info">
@@ -986,9 +996,10 @@ jobs:
fi fi
# Add Windows ZIP if exists # Add Windows ZIP if exists
if [ -f "$BUILD_DIR"/*-windows.zip ]; then WIN_PATH=$(get_latest_file "*-windows.zip")
WIN_FILE=$(basename "$BUILD_DIR"/*-windows.zip) if [ -n "$WIN_PATH" ]; then
WIN_SIZE=$(get_size "$BUILD_DIR/$WIN_FILE") WIN_FILE=$(basename "$WIN_PATH")
WIN_SIZE=$(get_size "$WIN_PATH")
cat >> "$BUILD_DIR/index.html" <<HTMLEOF cat >> "$BUILD_DIR/index.html" <<HTMLEOF
<div class="download-card"> <div class="download-card">
<div class="download-info"> <div class="download-info">