Testing front .env #66
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Virtual Dojo Deploy | ||
on: | ||
push: | ||
branches: [ main ] | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
- name: Set up Node.js | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: '22' # O la versión que uses | ||
- name: Install dependencies for frontend | ||
run: | | ||
npm install | ||
- name: Build frontend | ||
run: | | ||
npm run build:frontend | ||
- name: Install dependencies for backend | ||
run: | | ||
npm install --prefix backend | ||
- name: Install sshpass | ||
run: sudo apt-get install -y sshpass | ||
- name: Deploy to VPS | ||
env: | ||
SSH_HOST: ${{ secrets.VPS_SSH_HOST }} | ||
SSH_USERNAME: ${{ secrets.VPS_SSH_USERNAME }} | ||
SSH_PASSWORD: ${{ secrets.VPS_SSH_PASSWORD }} | ||
VITE_API_URL: ${{ secrets.VITE_API_URL }} | ||
VITE_SERVICE_USR: ${{ secrets.VITE_SERVICE_USR }} | ||
VITE_SERVICE_PASS: ${{ secrets.VITE_SERVICE_PASS }} | ||
run: | | ||
# Crear directorios en el VPS | ||
sshpass -p "${SSH_PASSWORD}" ssh -o StrictHostKeyChecking=no "${SSH_USERNAME}@${SSH_HOST}" 'mkdir -p /var/www/html/virtual-dojo/frontend /var/www/html/virtual-dojo/backend' | ||
# Copiar el build del frontend al VPS | ||
rsync -avz --delete -e "sshpass -p '${SSH_PASSWORD}' ssh -o StrictHostKeyChecking=no" frontend/dist/ "${SSH_USERNAME}@${SSH_HOST}:/var/www/html/virtual-dojo/frontend" | ||
# Crear el archivo .env para el frontend | ||
sshpass -p "${SSH_PASSWORD}" ssh -o StrictHostKeyChecking=no "${SSH_USERNAME}@${SSH_HOST}" <<EOF | ||
echo "VITE_API_URL=${VITE_API_URL}" > /var/www/html/virtual-dojo/frontend/.env | ||
echo "VITE_SERVICE_USR=${VITE_SERVICE_USR}" >> /var/www/html/virtual-dojo/frontend/.env | ||
echo "VITE_SERVICE_PASS=${VITE_SERVICE_PASS}" >> /var/www/html/virtual-dojo/frontend/.env | ||
EOF | ||
# Verificar el contenido del archivo .env en el VPS | ||
sshpass -p "${SSH_PASSWORD}" ssh -o StrictHostKeyChecking=no "${SSH_USERNAME}@${SSH_HOST}" 'cat /var/www/html/virtual-dojo/frontend/.env' | ||
# Copiar el backend al VPS | ||
rsync -avz --delete -e "sshpass -p '${SSH_PASSWORD}' ssh -o StrictHostKeyChecking=no" backend/ "${SSH_USERNAME}@${SSH_HOST}:/var/www/html/virtual-dojo/backend" | ||
# Crear el archivo .env para el backend | ||
sshpass -p "${SSH_PASSWORD}" ssh -o StrictHostKeyChecking=no "${SSH_USERNAME}@${SSH_HOST}" <<EOF | ||
echo "PORT=${PORT}" > /var/www/html/virtual-dojo/backend/.env | ||
echo "DATA_BASE_URL=${DATA_BASE_URL}" >> /var/www/html/virtual-dojo/backend/.env | ||
echo "FRONTEND_URL=${FRONTEND_URL}" >> /var/www/html/virtual-dojo/backend/.env | ||
echo "STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}" >> /var/www/html/virtual-dojo/backend/.env | ||
echo "EMAIL_HOST=${EMAIL_HOST}" >> /var/www/html/virtual-dojo/backend/.env | ||
echo "EMAIL_USER=${EMAIL_USER}" >> /var/www/html/virtual-dojo/backend/.env | ||
echo "EMAIL_PASS=${EMAIL_PASS}" >> /var/www/html/virtual-dojo/backend/.env | ||
echo "API_DOMAIN=${API_DOMAIN}" >> /var/www/html/virtual-dojo/backend/.env | ||
EOF | ||
# Verificar el contenido del archivo .env para asegurar que se ha creado correctamente | ||
sshpass -p "${SSH_PASSWORD}" ssh -o StrictHostKeyChecking=no "${SSH_USERNAME}@${SSH_HOST}" 'cat /var/www/html/virtual-dojo/backend/.env' | ||
sshpass -p "${SSH_PASSWORD}" ssh -o StrictHostKeyChecking=no "${SSH_USERNAME}@${SSH_HOST}" << 'EOF' | ||
cd /var/www/html/virtual-dojo/backend | ||
npm install pm2 -g | ||
npm install --only=prod | ||
pm2 restart all || pm2 start server.js --name virtual-dojo | ||
exit | ||
EOF | ||
# Reiniciar Nginx | ||
- name: Restart Nginx | ||
run: sshpass -p "${{ secrets.VPS_SSH_PASSWORD }}" ssh -o StrictHostKeyChecking=no "${{ secrets.VPS_SSH_USERNAME }}@${{ secrets.VPS_SSH_HOST }}" 'sudo systemctl restart nginx' |