This commit is contained in:
Dmitry 2025-11-27 18:38:15 +03:00
parent 30b876106c
commit 2881b4a5a6

View file

@ -384,64 +384,43 @@ jobs:
echo "🔨 Собираем веб-приложение (оптимизировано для 1.5GB памяти)..."
# Try multiple build strategies, starting with most memory-efficient
echo "🌐 Стратегия 1: WASM сборка..."
if timeout 1800 flutter build web --release \
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
--wasm \
--no-tree-shake-icons; then
echo "✅ WASM сборка успешна"
else
echo "⚠️ WASM не удался, стратегия 2: dart2js..."
# Use only profile mode - most memory efficient
echo "⚡ Используем profile mode (наиболее эффективный по памяти)..."
# Try dart2js (less memory than canvaskit)
if timeout 1800 flutter build web --release \
export DART_VM_OPTIONS="$DART_VM_OPTIONS --gc-on-threshold --low-memory-mode --enable-isolate-groups --use-slow-path"
echo "🔧 Настройки памяти: $DART_VM_OPTIONS"
timeout 2400 bash -c '
# Monitor memory usage during build
(
while true; do
echo "$(date +%H:%M:%S) Memory: $(free -m | grep Mem: | awk '\''{printf "%.1fGB", $3/1024}'\'')" >> /tmp/memory.log
sleep 10
done
) &
MONITOR_PID=$!
# Build with profile mode - much less memory intensive than release
flutter build web --profile \
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
--dart2js-optimization=O1 \
--no-tree-shake-icons \
--no-pub \
--suppress-analytics; then
echo "✅ dart2js с HTML renderer успешна"
--suppress-analytics
BUILD_RESULT=$?
kill $MONITOR_PID 2>/dev/null || true
if [ $BUILD_RESULT -eq 0 ]; then
echo "✅ Profile сборка успешна!"
echo "📊 Лог использования памяти:"
cat /tmp/memory.log || true
else
echo "⚠️ dart2js тоже провалился, стратегия 3: profile mode..."
export DART_VM_OPTIONS="$DART_VM_OPTIONS --gc-on-threshold --low-memory-mode --enable-isolate-groups --use-slow-path"
echo "🔧 Финальные настройки памяти: $DART_VM_OPTIONS"
timeout 2400 bash -c '
# Monitor memory usage during build
(
while true; do
echo "$(date +%H:%M:%S) Memory: $(free -m | grep Mem: | awk '\''{printf "%.1fGB", $3/1024}'\'')" >> /tmp/memory.log
sleep 10
done
) &
MONITOR_PID=$!
# Try profile mode instead of release - much less memory intensive
flutter build web --profile \
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
--no-tree-shake-icons \
--no-pub \
--suppress-analytics \
--no-sound-null-safety
BUILD_RESULT=$?
kill $MONITOR_PID 2>/dev/null || true
if [ $BUILD_RESULT -eq 0 ]; then
echo "✅ Profile сборка успешна (используем profile вместо release для экономии памяти)"
echo "📊 Лог использования памяти:"
cat /tmp/memory.log || true
else
echo "❌ Все стратегии сборки провалились!"
echo "📊 Лог использования памяти:"
cat /tmp/memory.log || true
exit 1
fi
' || (echo "❌ Все стратегии сборки провалились!" && exit 1)
echo "❌ Profile сборка провалилась!"
echo "📊 Лог использования памяти:"
cat /tmp/memory.log || true
exit 1
fi
fi
' || (echo "❌ Сборка провалилась!" && exit 1)
echo "✅ Сборка завершена"