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

View file

@ -384,29 +384,11 @@ jobs:
echo "🔨 Собираем веб-приложение (оптимизировано для 1.5GB памяти)..." echo "🔨 Собираем веб-приложение (оптимизировано для 1.5GB памяти)..."
# Try multiple build strategies, starting with most memory-efficient # Use only profile mode - most memory efficient
echo "🌐 Стратегия 1: WASM сборка..." echo "⚡ Используем profile mode (наиболее эффективный по памяти)..."
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..."
# Try dart2js (less memory than canvaskit)
if timeout 1800 flutter build web --release \
--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 успешна"
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" export DART_VM_OPTIONS="$DART_VM_OPTIONS --gc-on-threshold --low-memory-mode --enable-isolate-groups --use-slow-path"
echo "🔧 Финальные настройки памяти: $DART_VM_OPTIONS" echo "🔧 Настройки памяти: $DART_VM_OPTIONS"
timeout 2400 bash -c ' timeout 2400 bash -c '
# Monitor memory usage during build # Monitor memory usage during build
@ -418,30 +400,27 @@ jobs:
) & ) &
MONITOR_PID=$! MONITOR_PID=$!
# Try profile mode instead of release - much less memory intensive # Build with profile mode - much less memory intensive than release
flutter build web --profile \ flutter build web --profile \
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \ --dart-define=API_BASE_URL=https://api.mnemo-cards.online \
--no-tree-shake-icons \ --no-tree-shake-icons \
--no-pub \ --no-pub \
--suppress-analytics \ --suppress-analytics
--no-sound-null-safety
BUILD_RESULT=$? BUILD_RESULT=$?
kill $MONITOR_PID 2>/dev/null || true kill $MONITOR_PID 2>/dev/null || true
if [ $BUILD_RESULT -eq 0 ]; then if [ $BUILD_RESULT -eq 0 ]; then
echo "✅ Profile сборка успешна (используем profile вместо release для экономии памяти)" echo "✅ Profile сборка успешна!"
echo "📊 Лог использования памяти:" echo "📊 Лог использования памяти:"
cat /tmp/memory.log || true cat /tmp/memory.log || true
else else
echo "❌ Все стратегии сборки провалились!" echo "❌ Profile сборка провалилась!"
echo "📊 Лог использования памяти:" echo "📊 Лог использования памяти:"
cat /tmp/memory.log || true cat /tmp/memory.log || true
exit 1 exit 1
fi fi
' || (echo "❌ Все стратегии сборки провалились!" && exit 1) ' || (echo "❌ Сборка провалилась!" && exit 1)
fi
fi
echo "✅ Сборка завершена" echo "✅ Сборка завершена"