vibetunnel/mac/scripts/release-improvements.patch
Peter Steinberger 9e825ff21e Improve release scripts and fix Node.js detection issues
- Fix unbound variable errors in install-node.sh and node-path-setup.sh
- Add release-progress.sh for visual release monitoring
- Add release-health-check.sh for comprehensive pre-release validation
- Add check-node-simple.sh as a simpler, more robust Node.js checker
- Create release-improved.sh with better state tracking and progress indicators
- Update release-state.sh with better timestamp tracking

These improvements address issues encountered during beta.13 release:
- Node.js detection failures due to unbound variables
- Lack of visibility into release progress
- No clear way to resume interrupted releases
- Missing pre-flight validation
2025-07-19 02:30:26 +02:00

113 lines
No EOL
2.9 KiB
Diff

#!/bin/bash
# Release Script Improvements Patch
# Apply with: patch -p0 < release-improvements.patch
--- release.sh.orig 2025-01-01 00:00:00
+++ release.sh 2025-01-01 00:00:01
@@ -77,6 +77,7 @@
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
# Source state management functions
source "$SCRIPT_DIR/release-state.sh"
+source "$SCRIPT_DIR/release-progress.sh"
@@ -496,10 +497,15 @@
echo -e "${GREEN}✅ Build would be performed${NC}"
else
+ start_step "Building application" "2-5 minutes"
+
# Check for custom Node.js build
echo ""
echo "🔍 Checking for custom Node.js build..."
WEB_DIR="$PROJECT_ROOT/../web"
+ # Update state to in_progress
+ update_step 4 "in_progress"
+
# Check if .node-builds directory exists
if [[ -d "$WEB_DIR/.node-builds" ]]; then
CUSTOM_NODE_PATH=$(find "$WEB_DIR/.node-builds" -name "node-v*-minimal" -type d 2>/dev/null | sort -V | tail -n1)/out/Release/node
@@ -570,6 +576,9 @@
fi
fi
+ update_step 4 "completed"
+ complete_step "Building application"
+
echo -e "${GREEN}✅ Build complete${NC}"
fi
@@ -603,7 +612,15 @@
exit 0
fi
+"$SCRIPT_DIR/sign-and-notarize.sh" --sign-and-notarize
+start_step "Signing and notarizing" "10-15 minutes"
+update_step 5 "in_progress"
+
+# Start timeout warning in background
+timeout_warning "Notarization" 600 $$ &
+TIMEOUT_PID=$!
+
+"$SCRIPT_DIR/sign-and-notarize.sh" --sign-and-notarize
+
+# Kill timeout warning
+kill $TIMEOUT_PID 2>/dev/null || true
+
+update_step 5 "completed"
+complete_step "Signing and notarizing"
# Verify Sparkle component signing
echo ""
@@ -655,10 +672,17 @@
# Step 6.5: Notarize DMG
echo ""
echo -e "${BLUE}📋 Notarizing DMG...${NC}"
+start_step "Notarizing DMG" "5-10 minutes"
+update_step_progress 6 "Notarizing DMG..."
+
+# Start timeout warning in background
+timeout_warning "DMG notarization" 300 $$ &
+TIMEOUT_PID=$!
+
"$SCRIPT_DIR/notarize-dmg.sh" "$DMG_PATH"
+
+# Kill timeout warning
+kill $TIMEOUT_PID 2>/dev/null || true
+
+complete_step "Notarizing DMG"
echo -e "${GREEN}✅ DMG notarized${NC}"
# Verify DMG notarization
@@ -826,6 +850,9 @@
git tag -a "$TAG_NAME" -m "Release $RELEASE_VERSION (build $BUILD_NUMBER)"
git push origin "$TAG_NAME"
+update_step 7 "in_progress"
+update_step_progress 7 "Creating GitHub release..."
+
# Create release
echo "📤 Creating GitHub release..."
@@ -891,6 +918,7 @@
"$ZIP_PATH"
fi
+update_step 7 "completed"
echo -e "${GREEN}✅ GitHub release created${NC}"
# Step 7: Update appcast
@@ -962,6 +990,9 @@
echo -e "${YELLOW}⚠️ Some appcast issues detected. Please review the output above.${NC}"
fi
+# Clean up state file on success
+cleanup_state
+
+show_total_time
echo ""
echo -e "${GREEN}🎉 Release Complete!${NC}"
echo "=================="