Skip to content

๐Ÿ‘ทci: GitHub Actions SSH ๊ฒฝ๋กœ ์˜ค๋ฅ˜ ์ˆ˜์ • #3

๐Ÿ‘ทci: GitHub Actions SSH ๊ฒฝ๋กœ ์˜ค๋ฅ˜ ์ˆ˜์ •

๐Ÿ‘ทci: GitHub Actions SSH ๊ฒฝ๋กœ ์˜ค๋ฅ˜ ์ˆ˜์ • #3

Workflow file for this run

name: Deploy to EC2
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup SSH
shell: bash
run: |
mkdir -p "$HOME/.ssh"
echo "${{ secrets.EC2_SSH_KEY }}" > "$HOME/.ssh/id_rsa"
chmod 600 "$HOME/.ssh/id_rsa"
ssh-keyscan -H ${{ secrets.EC2_HOST }} >> "$HOME/.ssh/known_hosts"
- name: Deploy to EC2
run: |
ssh \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=10 \
-o StrictHostKeyChecking=no \
${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << 'EOF'
set -e
echo "๐Ÿ“‚ Move to project directory"
cd ~/ssakssak-commit
echo "๐Ÿ“ฆ Pull latest code"
git pull origin main
echo "๐Ÿ“ฆ Install dependencies"
npm ci --no-audit --no-fund
echo "๐Ÿ— Build Next.js"
npm run build
echo "๐Ÿš€ Reload PM2 apps (zero-downtime)"
pm2 reload next-app || pm2 start npm --name "next-app" -- run start -- --port 3000
pm2 reload ssakssak-worker || pm2 start npm --name "ssakssak-worker" -- run worker:start
echo "๐Ÿ’พ Save PM2 process list"
pm2 save
echo "โœ… Deploy finished successfully"
EOF