name: Deploy to Testing Server on: push: branches: - develop workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest name: Deploy to Testing Environment steps: - name: Checkout code uses: actions/checkout@v3 - name: Deploy via SSH uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} port: ${{ secrets.SSH_PORT || 22 }} script: | # Navigate to project directory cd ${{ secrets.PROJECT_PATH }} # Pull latest code echo "🔄 Pulling latest code from repository..." git pull origin develop # Install dependencies echo "📦 Installing dependencies with yarn..." yarn install --frozen-lockfile # Run database migrations echo "🗄️ Running database migrations..." yarn migration:run # Build the project echo "🏗️ Building the project..." yarn build # Restart PM2 process echo "🔄 Restarting PM2 application..." pm2 restart ${{ secrets.PM2_APP_NAME || 'low-code-engine' }} # Show PM2 status echo "✅ Deployment completed! PM2 status:" pm2 status echo "🚀 Application deployed successfully!"