54 lines
1.4 KiB
YAML
54 lines
1.4 KiB
YAML
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!"
|