stuff
This commit is contained in:
parent
4f502c5cec
commit
059b29496a
1 changed files with 35 additions and 22 deletions
|
|
@ -279,7 +279,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/cirruslabs/flutter:3.35.5
|
image: ghcr.io/cirruslabs/flutter:3.35.5
|
||||||
options: --memory=1536m --memory-swap=2048m
|
options: --memory=1280m --memory-swap=1024m
|
||||||
needs: deploy-backend
|
needs: deploy-backend
|
||||||
if: always() && needs.deploy-backend.result == 'success'
|
if: always() && needs.deploy-backend.result == 'success'
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -294,8 +294,8 @@ jobs:
|
||||||
apt-get install -y nodejs
|
apt-get install -y nodejs
|
||||||
echo "Node.js version: $(node --version)"
|
echo "Node.js version: $(node --version)"
|
||||||
echo "NPM version: $(npm --version)"
|
echo "NPM version: $(npm --version)"
|
||||||
# Set Node.js memory limits for dart2js compilation (512MB to fit in 1.5GB container)
|
# Set minimal Node.js memory limits for low-memory environment (256MB)
|
||||||
echo "NODE_OPTIONS=--max-old-space-size=512" >> $GITHUB_ENV || echo "NODE_OPTIONS=--max-old-space-size=512" >> ~/.bashrc || true
|
echo "NODE_OPTIONS=--max-old-space-size=256" >> $GITHUB_ENV || echo "NODE_OPTIONS=--max-old-space-size=256" >> ~/.bashrc || true
|
||||||
|
|
||||||
- name: Setup SSH
|
- name: Setup SSH
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -319,10 +319,10 @@ jobs:
|
||||||
- name: Build Web App
|
- name: Build Web App
|
||||||
working-directory: mnemo_cards_web_v2
|
working-directory: mnemo_cards_web_v2
|
||||||
env:
|
env:
|
||||||
# Optimized Dart VM memory usage (896MB for Dart, 512MB for Node.js)
|
# Ultra-aggressive memory optimization for low-memory environment
|
||||||
DART_VM_OPTIONS: "--old-gen-heap-size=896 --max-old-space-size=896"
|
DART_VM_OPTIONS: "--old-gen-heap-size=512 --max-old-space-size=512 --gc-on-threshold --low-memory-mode --enable-isolate-groups --use-slow-path --no-lazy-dispatchers"
|
||||||
# Node.js memory for dart2js compilation
|
# Minimal Node.js memory
|
||||||
NODE_OPTIONS: "--max-old-space-size=512"
|
NODE_OPTIONS: "--max-old-space-size=256"
|
||||||
# Limit parallel compilation to reduce memory pressure
|
# Limit parallel compilation to reduce memory pressure
|
||||||
FLUTTER_BUILD_PARALLEL: "1"
|
FLUTTER_BUILD_PARALLEL: "1"
|
||||||
# Disable analytics to save memory
|
# Disable analytics to save memory
|
||||||
|
|
@ -382,20 +382,32 @@ jobs:
|
||||||
echo "🔨 Собираем веб-приложение (оптимизировано для 1.5GB памяти)..."
|
echo "🔨 Собираем веб-приложение (оптимизировано для 1.5GB памяти)..."
|
||||||
|
|
||||||
# Try multiple build strategies, starting with most memory-efficient
|
# Try multiple build strategies, starting with most memory-efficient
|
||||||
echo "🌐 Стратегия 1: WASM сборка с минимальными опциями..."
|
echo "🌐 Стратегия 1: WASM сборка с HTML renderer..."
|
||||||
if timeout 1800 flutter build web --release \
|
if timeout 1800 flutter build web --release \
|
||||||
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
|
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
|
||||||
--wasm \
|
--wasm \
|
||||||
--no-tree-shake-icons \
|
--web-renderer html \
|
||||||
--dart2js-optimization=O1; then
|
--no-tree-shake-icons; then
|
||||||
echo "✅ WASM сборка успешна"
|
echo "✅ WASM сборка успешна"
|
||||||
else
|
else
|
||||||
echo "⚠️ WASM не удался, стратегия 2: dart2js с максимальной оптимизацией..."
|
echo "⚠️ WASM не удался, стратегия 2: dart2js с HTML renderer..."
|
||||||
|
|
||||||
|
# Try dart2js with html renderer (less memory than canvaskit)
|
||||||
|
if timeout 1800 flutter build web --release \
|
||||||
|
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
|
||||||
|
--web-renderer html \
|
||||||
|
--dart2js-optimization=O1 \
|
||||||
|
--no-tree-shake-icons \
|
||||||
|
--no-pub \
|
||||||
|
--suppress-analytics; then
|
||||||
|
echo "✅ dart2js с HTML renderer успешна"
|
||||||
|
else
|
||||||
|
echo "⚠️ dart2js тоже провалился, стратегия 3: profile mode..."
|
||||||
|
|
||||||
# Aggressive memory optimization for dart2js
|
|
||||||
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 1800 bash -c '
|
|
||||||
|
timeout 2400 bash -c '
|
||||||
# Monitor memory usage during build
|
# Monitor memory usage during build
|
||||||
(
|
(
|
||||||
while true; do
|
while true; do
|
||||||
|
|
@ -405,29 +417,29 @@ jobs:
|
||||||
) &
|
) &
|
||||||
MONITOR_PID=$!
|
MONITOR_PID=$!
|
||||||
|
|
||||||
# Build with memory monitoring
|
# Try profile mode instead of release - much less memory intensive
|
||||||
flutter build web --release \
|
flutter build web --profile \
|
||||||
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
|
--dart-define=API_BASE_URL=https://api.mnemo-cards.online \
|
||||||
--dart2js-optimization=O1 \
|
--web-renderer html \
|
||||||
--no-tree-shake-icons \
|
--no-tree-shake-icons \
|
||||||
--split-debug-info=/tmp/debug-info \
|
|
||||||
--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 "✅ dart2js сборка успешна"
|
echo "✅ Profile сборка успешна (используем profile вместо release для экономии памяти)"
|
||||||
echo "📊 Лог использования памяти:"
|
echo "📊 Лог использования памяти:"
|
||||||
cat /tmp/memory.log || true
|
cat /tmp/memory.log || true
|
||||||
else
|
else
|
||||||
echo "❌ Flutter build failed"
|
echo "❌ Все стратегии сборки провалились!"
|
||||||
echo "📊 Лог использования памяти:"
|
echo "📊 Лог использования памяти:"
|
||||||
cat /tmp/memory.log || true
|
cat /tmp/memory.log || true
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
' || (echo "❌ Flutter build failed" && exit 1)
|
' || (echo "❌ Все стратегии сборки провалились!" && exit 1)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "✅ Сборка завершена"
|
echo "✅ Сборка завершена"
|
||||||
|
|
@ -519,3 +531,4 @@ jobs:
|
||||||
echo ""
|
echo ""
|
||||||
echo "🎉 Проверка завершена!"
|
echo "🎉 Проверка завершена!"
|
||||||
ENDSSH
|
ENDSSH
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue