cotizaweb/.github/workflows/deploy.yml
jesusfb 161fcee049
Some checks are pending
Deploy to EC2 cotiza / deploy (push) Waiting to run
first commit
2026-04-24 12:53:27 -07:00

87 lines
2.8 KiB
YAML

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