name: Deploy to EC2 cotiza on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout código LOCAL uses: actions/checkout@v4 - name: Configurar SSH para EC2 run: | mkdir -p ~/.ssh echo "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts - name: Desplegar en EC2 run: | ssh -o StrictHostKeyChecking=no ubuntu@${{ secrets.EC2_HOST }} << 'EOF' set -e echo "=== 0) ASEGURANDO PROPIETARIO DEL REPO (GIT) ===" sudo chown -R ubuntu:ubuntu /var/www/html/cotizaaws cd /var/www/html/cotizaaws echo "=== 1) MARCANDO REPOSITORIO COMO SEGURO ===" git config --global --add safe.directory /var/www/html/cotizaaws echo "=== 2) CONFIGURANDO GIT CON TOKEN ===" git remote set-url origin https://${{ secrets.GH_TOKEN }}@github.com/jesusfb/cotizaaws.git echo "=== 3) ACTUALIZANDO CÓDIGO ===" git fetch origin git reset --hard origin/main echo "=== 4) RECREANDO DIRECTORIOS CRÍTICOS ===" mkdir -p storage/logs bootstrap/cache vendor public/build touch storage/logs/laravel.log echo "=== 5) PERMISOS BASE ===" sudo chown -R www-data:www-data storage bootstrap/cache vendor public/build sudo chmod -R 775 storage bootstrap/cache sudo chmod -R 755 vendor public/build sudo chmod 664 storage/logs/laravel.log echo "=== 6) COMPOSER (WWW-DATA) ===" sudo -u www-data composer install \ --no-interaction \ --prefer-dist \ --optimize-autoloader echo "=== 7) DEPENDENCIAS FRONTEND ===" npm install # 🔥 FIX DEFINITIVO DE PERMISOS PARA VITE sudo chown -R ubuntu:ubuntu public/build sudo chmod -R 775 public/build echo "=== 8) INSTALANDO SASS EMBEDDED (VITE) ===" npm install -D sass-embedded npm install @popperjs/core --save echo "=== 9) BUILD FRONTEND (VITE) ===" npm run build echo "=== 10) LIMPIANDO CACHE LARAVEL ===" sudo -u www-data php artisan view:clear || true sudo -u www-data php artisan cache:clear || true sudo -u www-data php artisan route:clear || true sudo -u www-data php artisan config:clear || true echo "=== 11) PERMISOS FINALES ===" sudo chown -R www-data:www-data storage bootstrap/cache public/build sudo chmod -R 775 storage bootstrap/cache public/build echo "=== 12) RECARGANDO APACHE ===" sudo systemctl reload apache2 echo "✅ DESPLIEGUE COMPLETO CON VITE + SASS OK" EOF