name: Remote Build and Deploy on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Deploying via SSH connection to VPS Host uses: appleboy/ssh-action@v1.0.3 with: host: "172.20.2.1" username: "root" key: ${{ secrets.SSH_PRIVATE_KEY }} port: 22 script: | echo "--- Starting EPIC WEB CONTROL Deployment ---" # 1. Navigate to your project directory on the VPS cd /var/www/atom-nexst/ # 2. Synchronize the application files via Git git fetch origin git reset --hard origin/main # --- CLEAN-UP STEP --- echo "--- Moving or removing specific items ---" rm -rf /var/www/atom-nexst/directory-name # Install missing node_modules based on updated package.json echo "--- Installing Dependencies ---" pnpm install --frozen-lockfile # Load environment variables from .env file for the next steps export $(grep -v '^#' .env | xargs) # 3. Run database migrations natively echo "--- Running Database Migrations ---" pnpm db:migrate # Regenerate Prisma Client to update types echo "--- Generating Prisma Client Types ---" pnpm prisma generate # 4. Compile the updated distribution assets echo "--- Building Application ---" pnpm build # 5. Restart the host background service echo "--- Restarting Atom Nexst Service ---" sudo systemctl restart atom-nexst.service echo "--- Deployment Completed Successfully ---"