diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..75e551a --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,50 @@ +name: Deploy Voodle Frontend to DigitalOcean + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Install SSH Key + uses: shimataro/ssh-key-action@v2 + with: + key: ${{ secrets.SERVER_SSH_KEY }} + known_hosts: ${{ secrets.KNOWN_HOSTS }} + + - name: Deploy Frontend to DigitalOcean + env: + HOST: ${{ secrets.HOST }} + USER: ${{ secrets.USER }} + FRONTEND_ENV: ${{ secrets.FRONTEND_ENV }} + run: | + ssh $USER@$HOST << EOF + # Navigate to the frontend project directory + cd /var/www/voodle/client + + # Pull the latest changes + git pull origin main + + # Update pnpm + npm install -g pnpm + + # Setup environment + echo "$FRONTEND_ENV" > .env + + # Install dependencies and build + pnpm install + pnpm run build + + # Restart the frontend service + pm2 restart voodle-frontend || pm2 start "pnpm start" --name "voodle-frontend" + + # Save PM2 process list + pm2 save + + # Reload Nginx if necessary + sudo systemctl reload nginx + EOF