name: Deploy to Dev on: push: branches: [ main, master, develop, dev ] jobs: deploy-dev: runs-on: ubuntu-latest steps: - name: Setup SSH Key run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan -H ${{ secrets.DEV_HOST }} >> ~/.ssh/known_hosts 2>/dev/null || true - name: Deploy to Dev Server uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.DEV_HOST }} username: ${{ secrets.DEV_USER }} key_path: ~/.ssh/deploy_key debug: true script: | set -e cd /var/www/platform/dev echo "đŸ“Ļ Pulling latest changes from repository..." git pull origin main || git pull origin master || git pull origin develop || git pull origin dev || true echo "🔄 Restarting Docker services..." docker compose restart echo "📊 Running migrations (if needed)..." docker compose exec -T web python manage.py migrate || true echo "📁 Collecting static files (if needed)..." docker compose exec -T web python manage.py collectstatic --noinput || true echo "✅ Dev deployment completed successfully" echo "â„šī¸ You can continue working directly on the server" - name: Health Check uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.DEV_HOST }} username: ${{ secrets.DEV_USER }} key_path: ~/.ssh/deploy_key debug: true script: | sleep 10 docker compose ps curl -f http://localhost:8124/health/ || exit 1 echo "✅ Health check passed"